sql >> Base de Datos >  >> RDS >> Mysql

Obtener resultados vacíos para la consulta MySQL 'COUNT'/'GROUP BY'

Esto no es un error de MySQL.

Una consulta de agregación devolverá una fila por grupo que se encuentre. Sin un group by , hay un grupo:toda la mesa. Admito que esto es un poco complicado, porque todavía hay un grupo, incluso cuando no hay filas en la tabla.

Con un group by , hay una fila por grupo. Si no hay filas en un grupo, entonces el grupo no aparece. En su caso, la consulta:

SELECT `a`, `b`, COUNT(*) as `c`
FROM `mytable` 
WHERE `status` = 1

Devolverá una fila, con dos NULL s seguido de 0 .

La misma consulta con:

GROUP BY `a`,`b`

no devolverá filas porque no hay filas para formar grupos.