Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос на максимальное значение  [new]
Yacudzer
Member

Откуда: Иваново
Сообщений: 5
Добрый день. Подскажите можно ли сделать одним запросом следующее.
К примеру, есть таблица:
ProductIDNameDescriptionCategoryPrice
1KayakA boat for one personWatersports275.00
2LifejacketProtective and fashionableWatersports48.95
3Soccer ballFIFA-approved size and weightSoccer19.50
4Corner flagsGive you playing field that professional touchSoccer34.95
5StadiumFlat-packed 35000-seat stadiumSoccer79500.00
6Thinking capImprove your brain efficiency by 75%Chess16.00
7Unsteady ChairSecretly give your opponent a disadvantageChess29.95
8Human ChessA fun game for the whole familyChess75.00


необходимо для каждой Category найти максимальную цену и вывести соответсвующее ей Name

обычным select max(price) не получается ибо группировать надо по всем выводимым полям, а если сгруппировать по name, то в таком же виде будет результат... всю голову уже сломал...

понимаю что можно сделать select distinct Catogory и потом для каждой категории сделать select top(1) name, max(price) .... group by name order by max(price) desc, объединить все в одну таблицу и затем вывести результат.
задом чую, что можно сделать проще, одним запросом, но пока не могу сообразить как.
подскажите, пожалуйста...
29 апр 13, 14:03    [14244062]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на максимальное значение  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
select top 1 with ties Category, Name, Price 
from [есть таблица]
order by row_number() over (partition by Category order by Price desc)
29 апр 13, 14:06    [14244076]     Ответить | Цитировать Сообщить модератору
 Re: Запрос на максимальное значение  [new]
Добрый Э - Эх
Guest
Yacudzer,

трижды порванный баян
30 апр 13, 05:13    [14247138]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить