Here's an sql query I am using to get count of records in a table separated by week (only date is stored in table). It works as expected.
SELECT count(id), CONCAT('Week ',WEEK(complaintRaisedDate)) week
FROM events
WHERE categoryId=1
GROUP BY week
ORDER BY week
This yields result like
count(id) week
---------- | ----------
1 Week 36
2 Week 40
1 Week 41
How I want the result to be is below:
count(id) week
---------- | ----------
1 Week 36
0 Week 37
0 Week 38
0 Week 39
2 Week 40
1 Week 41
That is, if no records found for a particular week it should still show the week (within the date range of records in table) with a count of 0. I can figure out a way to do this in PHP, but I was wondering if it can be achieved with a little tweaking of the SQL query itself. Is it possible? Thanks.
Edit: SQLFiddle