2

これが間違った場所である場合は申し訳ありません - もしそうなら移動してください! 過去数時間、次の情報を返すクエリを考え出そうとしました。

過去 3 か月間 (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 によって PostTags が関連付けられていないレコードが削除されることです。私はSQLにあまり熟練していないので、これがいくつかの問題を引き起こしました。関連情報:

  • 質問は、PostTypeId が 1 に設定された投稿です
  • 回答は、PostTypeId が 2 に設定された投稿です

誰かが助けてくれれば、私は非常に感謝しています。

ありがとう。

4

1 に答える 1

1

5か月後、これはあなたが望むことだと思います:

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

回答のカウントを提供すると、クエリが少し複雑になりますが、上記のクエリでは、質問と回答の両方が適切な月とタグに割り当てられていると思います。

于 2012-12-22T08:20:14.450 に答える