SELECT `video_view`.`video_id`, DATE_FORMAT(`date`,'%d/%m/%Y') AS `d`, COUNT(*) AS `tot_views`
FROM `video_view`
WHERE (video_id = 169) AND (`date` > '2010-07-30 12:43:39')
AND (`date` < '2010-08-06 12:43:39')
GROUP BY DAY(`date`) ORDER BY `d` DESC
is there a way to get also the non existing row (no view in that day) ?
SELECT '2010-07-30' + INTERVAL n DAY AS thedate
, COUNT(video_view.video_id) AS tot_views
FROM numbers
LEFT OUTER
JOIN video_view
ON video_view.date >= '2010-07-30' + INTERVAL n DAY
AND video_view.date < '2010-07-30' + INTERVAL n+1 DAY
WHERE '2010-07-30' + INTERVAL n DAY <= '2010-08-06'
GROUP
BY thedate