2010-01-13 11 views
12

estoy tratando de obtener un conteo de cada valor en una tabla usando el siguiente código SQL:¿Por qué el grupo Postgres no selecciona conteos?

SELECT col, COUNT(col) 
FROM table 
GROUP BY col 

(Hay una cláusula WHERE en el código real, pero no tiene ningún impacto).

Cuando ejecuto esto por lo que obtener resultados como:

a  - 5 
b  - 4 
<null> - 0 

No importa cuántas entradas nula tengo, siempre muestra una cuenta de 0.

Cualquier idea por qué?

+1

Nota: Tengo una solución para esto (simplemente unise a SELECT null, count (*) FROM tabla DONDE col es nulo), pero se siente como un truco para mí. – RodeoClown

Respuesta

28

Lo descubrí. Cambió el código para usar COUNT (*) en lugar de COUNT (col).

COUNT (col) no contaba las filas nulas, todos los demás métodos de agregación también eliminan los valores nulos del conjunto de resultados.

Cuestiones relacionadas