sql >> Databasteknik >  >> RDS >> Mysql

Lägg till saknad månad i sökresultatet

Skapa en tabell med alla månader, och sedan vänster gå med i den med din fråga. I linje med

select count(1) as count, months.month, year(published_at) as year
from months left join articles on months.month = month(published_at)
where published_at >= (now() - interval 1 year) and published_at <= now()
group by month(published_at)
order by year asc, month asc

Det kommer att fungera, men det kommer att ge dig resultat från jan till december, och kommer inte att ge dig år. En liknande fråga ställdes tidigare, sedan kom jag med en mycket komplex fråga, så om du inte hittar något enklare, överväg att ta en titt:

Frågeställningen mellan datum fungerar inte, nu är vi inne på ett nytt år



  1. Partitionering på en budget

  2. MySQL Group av SUM

  3. MySQL SLÄPP UNIK BEGRÄNSNING

  4. Hur kommer du till gränser på 8060 byte per rad och 8000 per (varchar, nvarchar) värde?