如何通过data.stackexchange.com获得问题,每个标签的答案?

时间:2012-07-11 01:50:42

标签: mysql sql database stackexchange dataexplorer

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

过去三个完成月份(2012年4月,2012年5月,2012年6月)每个“前5名”标签的问题数和答案数。

根据我发现的其他查询,我得到了this far

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
  • 的帖子

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

感谢。

1 个答案:

答案 0 :(得分:1)

五个月后,我认为这样做符合你的要求:

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

提供答案的计数会使查询复杂化,但我认为上面的查询会将问题和答案分配到适当的月份和标签中。