我有一个网站的帖子表,其中每个条目都有其创建日期。
我想返回一个表格,例如:
Date Posts
16-11-2009 5
17-11-2009 0
18-11-2009 4
etc
但我正在努力寻找正确的 SQL。我可以轻松获得按日期分组的帖子计数,但这不会返回没有帖子的日期(例如,它错过了 2009 年 11 月 17 日)。
有一些 SQL 可以给我我想要的吗?或者我应该使用一些非 SQL 代码来处理没有帖子的日子?
最佳答案
WITH dates AS
(
SELECT CAST('2009-01-01' AS DATETIME) AS d
UNION ALL
SELECT DATEADD(day, 1, d)
FROM dates
WHERE d <= GETDATE()
)
SELECT d, COUNT(posts.id)
FROM dates
LEFT JOIN
posts
ON posts.date >= d
AND posts.date < DATEADD(day, 1, d)
GROUP BY
d
OPTION (MAXRECURSION 0)
关于sql - 每个日期的项目计数,日期之间没有间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1783733/