1
Нужна помощь, вот мой SQL ниже: Я получаю дубликаты и не верну мое поле LastRespondedDate. Любая помощь будет принята с благодарностью.SQL HELP Получение дубликатов при попытке получить max (Date) для записи
SELECT t.[column1],
pr.[column1],
pr.[RespondedDttm],
t.[column2],
t.[column3],
t.[column4]
FROM Table1 t LEFT JOIN
(
SELECT [t.column1], [pr.column2], [RespondedDttm], MAX([RespondedDttm]) AS LastRespondedDate
FROM Table2 pr
GROUP BY [column1], RespondedDttm, [pr.column3]) pr
ON (t.[column1] = pr.[column1])
WHERE t.[column8] IN (value) AND
(pr.[RespondedDttm] >= '2015-09-01') AND
(pr.[Response] IS NOT Null)
Краткое объяснение этого состоит в том, что вы не можете вернуть все ваши данные с максимальной датой в один проход , Вам нужно пройти один проход, чтобы идентифицировать запись с этой датой, и второй проход, чтобы получить оставшуюся часть записи. Выполнение этого по-другому возвращает ВСЕ уникальные записи. Что поражает цель только Макс. – durbnpoisn
Почему t.column1 во внутреннем выборе? T должно быть неизвестно – xQbert
что rdbms/database? sql-server oracle mysql? @durbnpoisn с функциями окна вы можете получить максимальный набор данных без группы или несколькими проходами, поэтому он зависит от того, какой rdbms используется. С учетом сказанного, если он пытается уничтожить дубликаты, тогда ключевым будет выбрать конкретную комбинацию условий, которые будут возвращать только одну отдельную запись/информацию из таблицы2 pr – Matt