Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mysql:Contar registros (incluindo zero) por mês


A maneira mais simples de fazer isso no MySQL é criar uma tabela chamada months que lista todos os meses em que você está interessado e use um LEFT JOIN em sua tabela.
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

No entanto, como isso é principalmente um problema de apresentação, geralmente é mais fácil executar a consulta como você já está fazendo e transformar o resultado no cliente (por exemplo, PHP).