Предположим у меня есть следующая таблица так:SQL Server: возвращает максимальное из группы
Parent_Company Child_Company Requested Authorized Char1 Char2
------------------------------------------------------------------------
Fruits Apples $1000 $1000 A 10
Fruits Apples $10000 $5000 E 10
Fruits Apples $7000 $7000 C 15
Fruits Pears $1000 $0 B 20
Fruits Grapes $1000 $200 A 10
Vegetables Celery $500 $500 D 17
Vegetables Celery $1000 $1000 A 10
Vegetables Lettuce $1000 $1000 A 10
Vegetables Lettuce $2000 $0 B 12
Я хочу, чтобы мой запрос, чтобы вернуться:
Parent_Company Child_Company Requested Authorized Char1 Char2
------------------------------------------------------------------------
Fruits Apples $7000 $7000 C 15
Fruits Pears $1000 $0 B 20
Fruits Grapes $1000 $200 A 10
Vegetables Celery $1000 $1000 A 10
Vegetables Lettuce $1000 $1000 A 10
Логика здесь в том, что на основе разные Родительские/Детские комбинации, я хочу, чтобы он возвращал строку с наивысшей суммой Authorized
.
Первая мысль, которая пришла в голову, что я могу просто использовать Max + Group По запросу:
SELECT
Parent_company, Child_Company, Char1, Char2, Requested,
Max(Authorized)
FROM
Food
GROUP BY
Parent_Company, Child_Company, Char1, Char2, Requested
Но это на самом деле не работает так, как я хочу, так как char1, char2 и Запрашиваемые суммы меняются ,
Из моего ограниченного знания SQL Server я считаю, что возможно что-то с PARTITION BY можно использовать, но я действительно не знаю, как подойти к нему с этим.
Справка была бы принята с благодарностью.