T-SQL Group By Problem

У меня следующая проблема (или, может быть, просто мыслительный барьер):

У меня есть таблица (на самом деле представление из таблицы) со следующими столбцами и данными:

http://i.stack.imgur.com/n98Sw.png

Теперь я хочу сгруппировать эти данные по столбцу «Клиент» и получить «CompetitorName» с наибольшим значением «CompetitorCount». Конечно, я могу создать такой запрос:

SELECT Customer, MAX (CompetitorCount) FROM MyTable GROUP BY Customer

Это вернет две строки:

Foo; 12  
Bar; 7

Но я не смогу таким образом получить CompetitorName. Если я включу его в группу по разделам, «Клиент» появится несколько раз. В противном случае мне придется использовать агрегатную функцию, чтобы выбрать, какое «CompetitorName» я хочу использовать, но, конечно, MAX не работает.

Я уверен, что это можно как-то сделать, но на данный момент я понятия не имею, как .

Заранее благодарим за любую помощь.

6
задан RichardTheKiwi 24 January 2011 в 03:31
поделиться