У меня есть таблица, которая имеет три поля, как это:Получить записи с максимальным значением суммы сгруппированных SQL результаты
PK account value
-----------------------
1 40010101 130
1 40010101 500
1 40010569 590
2 40010569 300
2 40010101 200
Я хочу, чтобы выбрать запись, которая имеет наибольшее значение суммы стоимости для каждого ПК, сгруппированные по ПК и счета, поэтому мой результат должен быть таким:
PK account value
-----------------------
1 40010101 630
2 40010569 300
Я попытался это решение:
SELECT
pn.*
FROM
(select PK, account, sum(value) as value
from table
group by PK, account) pn
INNER JOIN
(select PK, MAX(value) AS maxvalue
from (select PK, account, sum(value) as value
from table
group by PK, account) pn
group by PK) maxsum
ON pn.PK= maxsum.PK
AND pn.value = maxsum.maxvalue
Это работает, но я прошу вас более быстрое решение. Я мог бы записать тысячи записей. Я не могу использовать хранимую процедуру. Использование SQL-сервера.
Вы используете MySQL или SQL Server? Можете ли вы правильно пометить? –
@Kason Вы приняли его вопрос. – Blank
Если вы предоставите ссылку sqlfiddle.com для этого типа вопросов, это поможет нам решить быстрее и точнее. –