如何从 Stack Exchange 数据资源管理器中查询上周创建的所有新标签?
How to query all the new tags created last week from Stack Exchange data Explorer?
我想 query 上周创建的新标签。
我们有 Posts、Tags、PostTags 表(暂时省略 TagSynonyms)。
Tags 没有 CreationDate,所以我们可能需要使用 join with min(Post.CreationDate)
last week = getdate() - 7
此查询将生成标签在过去一周创建的 帖子 的列表。表格之间的JOIN
只是为了传递信息。 WHERE
子句将排除在 7 天之前使用过的标签。
子查询将生成过去使用过的唯一标签 ID 列表。按照您上周提到的示例,公式是使用 DATEDIFF
函数创建的。
SELECT PostTags.PostId, PostTags.TagId, Tags.TagName, Posts.CreationDate
FROM PostTags
JOIN Posts
ON PostTags.PostId = Posts.Id
JOIN Tags
ON PostTags.TagId = Tags.Id
WHERE PostTags.TagId NOT IN (
SELECT DISTINCT PostTags.TagId AS OlderTags
FROM PostTags
JOIN Posts
ON PostTags.PostId = Posts.Id
WHERE DATEDIFF(DAY, CreationDate, GETDATE()) > 7)
我想 query 上周创建的新标签。 我们有 Posts、Tags、PostTags 表(暂时省略 TagSynonyms)。
Tags 没有 CreationDate,所以我们可能需要使用 join with min(Post.CreationDate)
last week = getdate() - 7
此查询将生成标签在过去一周创建的 帖子 的列表。表格之间的JOIN
只是为了传递信息。 WHERE
子句将排除在 7 天之前使用过的标签。
子查询将生成过去使用过的唯一标签 ID 列表。按照您上周提到的示例,公式是使用 DATEDIFF
函数创建的。
SELECT PostTags.PostId, PostTags.TagId, Tags.TagName, Posts.CreationDate
FROM PostTags
JOIN Posts
ON PostTags.PostId = Posts.Id
JOIN Tags
ON PostTags.TagId = Tags.Id
WHERE PostTags.TagId NOT IN (
SELECT DISTINCT PostTags.TagId AS OlderTags
FROM PostTags
JOIN Posts
ON PostTags.PostId = Posts.Id
WHERE DATEDIFF(DAY, CreationDate, GETDATE()) > 7)