2

如果这是不正确的位置,我深表歉意 - 如果是,请移动它!在过去的几个小时里,我一直在尝试提出一个查询,该查询将返回以下信息:

最近三个月(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 的帖子

如果有人可以提供帮助,我将非常感激。

谢谢。

4

1 回答 1

1

五个月后,我认为这可以满足您的要求:

https://data.stackexchange.com/stackoverflow/query/89629/questions-per-tag-top-five-by-month

为答案提供计数会使查询变得有点复杂,但我认为上面的查询将问题和答案都分配到了正确的月份和标签中。

于 2012-12-22T08:20:14.450 回答