这是我用来获取按周分隔的表中的记录数的 sql 查询(仅日期存储在表中)。它按预期工作。
SELECT count(id), CONCAT('Week ',WEEK(complaintRaisedDate)) week
FROM events
WHERE categoryId=1
GROUP BY week
ORDER BY week
这会产生类似的结果
count(id) week
---------- | ----------
1 Week 36
2 Week 40
1 Week 41
我希望结果如下:
count(id) week
---------- | ----------
1 Week 36
0 Week 37
0 Week 38
0 Week 39
2 Week 40
1 Week 41
也就是说,如果没有找到特定周的记录,它仍应显示计数为 0 的周(在表中记录的日期范围内)。我可以在 PHP 中找到一种方法,但我想知道是否它可以通过稍微调整 SQL 查询本身来实现。可能吗?谢谢。
编辑:SQLFiddle