Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:conta i record (incluso zero) al mese

Il modo più semplice per farlo in MySQL è creare una tabella chiamata months che elenca tutti i mesi che ti interessano e usa un LEFT JOIN al tuo tavolo.

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

Tuttavia, poiché si tratta principalmente di un problema di presentazione, spesso è più semplice eseguire la query come stai già facendo e trasformare il risultato nel client (ad es. PHP).