¿Cómo puedo contar los valores nulos al hacer una consulta con tabulación cruzada?Recuento de valores nulos en MYSQL
tengo una tabla con tres columnas [ID, nombre, respuesta]
tengo siguientes registros:
ID NAME ANS
1 ABC 1
1 ABC 0
1 ABC NULL
2 XYZ 1
2 XYZ NULL
2 XYZ NULL
2 XYZ 1
2 XYZ 0
1 ABC 0
Ahora me gustaría obtener mi resultado:
ID Name NULLCOUNT TRUE COUNT FALSE COUNT
1 ABC 1 1 2
2 XYZ 2 2 1
Estoy utilizando la siguiente instrucción SQL:
select ID, NAME,
sum(case ANS when null then 1 else 0 end) as NULLCOUNT,
sum(case ANS when 1 then 1 else 0 end) as TRUECOUNT,
sum(case ANS when 0 then 1 else 0 end) as FALSECOUNT
from
TBL1
Group By ID, Name
Conseguir mi resultado:
ID Name NULLCOUNT TRUE COUNT FALSE COUNT
1 ABC 0 1 2
2 XYZ 0 2 1
El Conde NULL es cada error. ¿Por qué y cómo puedo solucionar esto?
thnx funcionó, pero quiere preguntar por qué es diferente de truecount y falsecount. ¿No debería ser igual para truecount y falsecount? Cuál es el correcto para el resto otros también – KoolKabin
null es como undefined. Indefinido! = Indefinido. – foret
@KoolKabin: porque está implícitamente comparando ANS y NULL en el constructo 'case '. Sin embargo, NULL no es igual a nada, ni siquiera a sí mismo: 'NULL! = NULL' (se evalúa como verdadero). Necesitas usar el constructo especial "IS NULL": 'NULL IS NULL' (se evalúa como verdadero). Tricky, sí. Útil, también sí. – Piskvor