У меня есть таблица в SQL Server 2005, как, скажем, поля A, B, C, D
Если у меня есть следующие данные:
A B C D
1 B1 C1 D1 -
2 B1 C1 D1 -
3 B2 C2 D2 -
4 B2 C2 D2 -
5 B2 C2 D2 -
6 B3 C3 D3 -
Я хочу иметь возможность выбирать строки, которые являются уникальными (на B, C и D) или, если не уникальными (на B, C и D), то я хотел бы выбрать только строку с наибольшим значением в поле А. Итак, я хотел бы вернуть строку 2 (A = 2), строку 5 и строку 6 в приведенном выше сценарии. Я не хотел бы использовать курсоры, если это возможно, но установить операции на основе.
Есть ли способ, которым я могу это сделать, таким образом, чтобы я мог использовать его в хранимой процедуре или табличной функции?
Спасибо заранее,
Тим