sql >> Databasteknik >  >> RDS >> Mysql

Mysql:Räkna poster (inklusive noll) per månad

Det enklaste sättet att göra detta i MySQL är att skapa en tabell som heter months som listar alla månader du är intresserad av och använder en LEFT JOIN till ditt bord.

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

Men eftersom detta mestadels är ett presentationsproblem är det ofta lättare att bara köra frågan som du redan gör och omvandla resultatet i klienten (t.ex. PHP).




  1. SQL Hämta alla poster äldre än 30 dagar

  2. MySQL:Använder datumen i ett mellanvillkor för resultaten

  3. Joda Time - Hibernate infogar gårdagens datum i databasen

  4. Hur man ansluter till MySQL med PHP