Вы можете использовать производную таблицу или выражение общей таблицы, чтобы получить верхние 4, затем SUM
, что.
SELECT SUM(Value) As Top4Sum
FROM
(
SELECT TOP (4) Value
FROM YourTable
WHERE Code = 'A'
ORDER BY Value DESC
) T
Если вы хотите SUM
из TOP 4
для каждого Code
Вы могли бы сделать
;WITH CTE
AS (SELECT *,
ROW_NUMBER() OVER (PARTITION BY Code ORDER BY Value DESC) RN
FROM YourTable)
SELECT Code,
SUM(Value)
FROM CTE
WHERE RN <= 4
GROUP BY Code