SQL is notoir slecht in het retourneren van gegevens die niet in de database staan. U kunt de begin- en eindwaarden vinden voor hiaten aantal datums, maar het is moeilijk om alle datums te krijgen.
De oplossing is om een kalendertabel te maken met één record voor elke datum en deze OUTER JOIN aan uw zoekopdracht toe te voegen.
Hier is een voorbeeld, ervan uitgaande dat created_at van het type DATE is:
SELECT calendar_date, COUNT(`id`)
FROM calendar LEFT OUTER JOIN my_table ON calendar.calendar_date = my_table.created_at
GROUP BY calendar_date
(Ik vermoed dat created_at echt DATETIME is, dus je moet wat meer gymnastiek doen om AAN de tafels te komen).