Как запросить все новые теги, созданные на прошлой неделе, из проводника данных Stack Exchange? - PullRequest
0 голосов
/ 05 августа 2020

Я хочу запросить ТАК новых тегов, созданных за последнюю неделю. У нас есть таблицы Posts, Tags, PostTags (пока опускаем TagSynonyms).

Tags не имеет CreationDate, поэтому нам, вероятно, нужно использовать соединение с min (Post.CreationDate)

last week = getdate() - 7

1 Ответ

0 голосов
/ 06 августа 2020

Этот запрос выдаст список сообщений , теги которых были созданы на прошлой неделе. JOIN между таблицами используется только для информации. Предложение WHERE исключает теги, которые использовались до истечения 7 дней.

Подзапрос создаст список уникальных идентификаторов тегов, которые использовались в прошлом. Следуя вашему примеру на прошлой неделе, формула создается с использованием функции 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)
...