У меня есть настройка задания, которая в настоящее время выбирает записи из таблицы, не содержащей уникального индекса. Я понимаю, что это можно решить, просто поместив индекс в таблицу и соответствующие столбцы, но в этом сценарии для целей тестирования мне нужно удалить индекс, а затем выполнить выбор, который также удалит дубликаты на основе 2 столбцов:
SELECT DISTINCT [author], [pubDate], [dateadded]
FROM [Feeds].[dbo].[socialPosts]
WHERE CAST(FLOOR(CAST(dateadded AS float)) AS datetime) >
DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE() - 2), 0)
AND CAST(FLOOR(CAST(dateadded AS float)) AS datetime) <
DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)
Это выбирает все записи за день до этого, и я хочу дедуплицировать записи на основе автора и публикации. Это может быть пост-выбор или сделанный ранее, но идея состоит в том, чтобы выяснить, можно ли это сделать в рамках выбора.
dateadded
как значение с плавающей запятой? Почему не фактическое значение даты/времени? Кроме того, вы должны делать включающие диапазоны с нижней границей и исключительные диапазоны с верхней границей (бит> - 2
сбивается). Какая связь междуdateadded
и другими столбцами - можно ли использовать простойMAX()
? - person Clockwork-Muse   schedule 10.07.2012dateadded >= DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()) - 1, 0)
. - person Clockwork-Muse   schedule 10.07.2012