【发布时间】:2018-05-05 06:16:44
【问题描述】:
我正在尝试获取每月的帖子总数
WITH QuestStatsByMonth AS (
SELECT DATEADD (month, DATEDIFF (month, 0, q.CreationDate), 0) AS [Month],
t.TagName,
SUM (q.Score) AS TotalScore,
q.Id AS id
FROM Posts q
INNER JOIN PostTags pt
ON q.Id = pt.PostId
INNER JOIN Tags t
ON t.Id = pt.TagId
WHERE q.PostTypeId = 1
AND t.TagName IN ('perl6')
GROUP BY DATEADD (month, DATEDIFF (month, 0, q.CreationDate), 0),
t.TagName
)
SELECT
q.[Month], q.TagName + ' questions' AS [Tag], COUNT(q.id) AS Qs
FROM QuestStatsByMonth q
LEFT JOIN QuestStatsByMonth h
ON h.[Month] <= q.[Month]
AND h.TagName = q.TagName
GROUP BY q.[Month], q.TagName
ORDER BY q.[Month], q.TagName
但这会产生一个
选择列表中的“Posts.Id”列无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
我尝试在 WITH 语句中设置 COUNT,但错误出现在其他地方。有什么想法吗?
【问题讨论】:
标签: sql sql-server tsql data.stackexchange.com