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

Mysql:Contar registros (incluido cero) por mes

La forma más sencilla de hacer esto en MySQL es crear una tabla llamada months que enumera todos los meses que le interesan y use LEFT JOIN en su tabla.

SELECT
   YEAR(time) AS year
   MONTH(time) AS month,
   COUNT(myTable.year) AS cnt, 
FROM months
LEFT JOIN myTable 
    ON months.year = myTable.year
    AND months.month = myTable.month
GROUP BY months.year, months.month
ORDER BY months.year, months.month

Sin embargo, dado que esto es principalmente un problema de presentación, a menudo es más fácil simplemente ejecutar la consulta como ya lo está haciendo y transformar el resultado en el cliente (por ejemplo, PHP).