Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mysql :Compter les enregistrements (y compris zéro) par mois

La façon la plus simple de le faire dans MySQL est de créer une table appelée months qui répertorie tous les mois qui vous intéressent et utilisez un LEFT JOIN à votre table.

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

Cependant, comme il s'agit principalement d'un problème de présentation, il est souvent plus simple d'exécuter la requête comme vous le faites déjà et de transformer le résultat dans le client (par exemple, PHP).