я следующие данные:SQL Query Group By Справка
cust subject date
Cust1 Subject1 2010-12-31 21:59:59.000
Cust1 Subject1 2010-12-31 21:59:59.000
Cust4 Subject3 2011-02-27 21:59:59.000
Cust5 Subject1 2010-10-31 21:59:59.000
Cust5 Subject2 2010-10-31 21:59:59.000
Cust6 Subject2 2010-10-31 21:59:59.000
Cust6 Subject2 2010-12-31 21:59:59.000
Мне нужно добиться следующего:
- группы их Каст и при
- Если есть 2 записи с то же самое cust и subject, то мне нужно вернуть тот, который имеет самую высокую дату
- Следуя приведенным выше, если даты совпадают, тогда возвратите только 1 из них.
Результат запроса должен быть:
cust subject date
Cust1 Subject1 2010-12-31 21:59:59.000
Cust4 Subject3 2011-02-27 21:59:59.000
Cust5 Subject1 2010-10-31 21:59:59.000
Cust5 Subject2 2010-10-31 21:59:59.000
Cust6 Subject2 2010-12-31 21:59:59.000
Может кто-нибудь помочь мне с этим?
мне удалось сделать 2 из требований, но не все 3.
Конечно, MAX ([дата]) работает ... ROW_NUMBER() является излишним. :) Тем не менее, мне это нравится! –
Я думаю, вам нужно добавить 'AS RN' в столбце номера строки для предложения' WHERE', чтобы правильно функционировать ... –
Большое спасибо. Причина, по которой я принял это в качестве ответа, заключался в том, что я забыл упомянуть, что у меня есть другие столбцы, которые мне нужно возвращать, а также, что я не буду включать их в группу и не могу использовать их агрегатную функцию (например, заголовок например), и он не будет работать с обычной группой путем подхода (по крайней мере, не так легко, как этот). Я посмотрю на функции секционирования, они кажутся большой заставкой. – HaniBey