СУММА МАКСА (ТОП х) - PullRequest
       1

СУММА МАКСА (ТОП х)

4 голосов
/ 13 марта 2011

Скажем, у меня есть таблица, подобная следующей:

PK Code Value
1  A    200
2  A    300
3  A    25
4  A    75
5  A    50
6  A    15
7  A    300
8  A    75

Как бы я получить значение из 4 верхних значений, где код = A (т.е. просто хочу сумму 300 + 300 + 200 + 75)

Спасибо

1 Ответ

11 голосов
/ 13 марта 2011

Вы можете использовать производную таблицу или выражение общей таблицы, чтобы получить верхние 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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...