如果这是不正确的位置,我深表歉意 - 如果是,请移动它!在过去的几个小时里,我一直在尝试提出一个查询,该查询将返回以下信息:
最近三个月(2012 年 4 月、2012 年 5 月、2012 年 6 月)中每个“前 5”标签的问题数和答案数。
根据我发现的其他查询,我已经做到了这一点:
SELECT *, COUNT(*) AS Count FROM
(
SELECT CAST(
CAST(DATEPART(YYYY, CreationDate) AS varchar) + '-' + CAST(DATEPART(MM, CreationDate) AS varchar) + '-01'
AS DATETIME) [Month],
t.TagName
FROM Posts p
JOIN PostTags pt ON pt.PostId = p.Id
JOIN Tags t ON t.Id = pt.TagId
WHERE TagId IN
(
SELECT TOP 5 Id FROM Tags
ORDER BY Count DESC
)
) AS X
WHERE [Month] >= CAST('2012-04-01' as datetime)
AND [Month] < CAST('2012-07-01' as datetime)
GROUP BY TagName, [Month]
ORDER BY [Month] ASC, TagName ASC
问题是 JOIN 消除了没有关联 PostTag 的记录。我对 SQL 不是很熟练,所以这给我带来了一些问题。相关信息:
- 问题是 PostTypeId 设置为 1 的帖子
- 答案是 PostTypeId 设置为 2 的帖子
如果有人可以提供帮助,我将非常感激。
谢谢。