SUM은

2011-03-13 2 views
4

내가 같은 테이블이 말 다음SUM은

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 

을 코드 = A (즉 단지 (300)의 합계를 원하시는 곳은 최고 4 가장 높은 값의 값을 얻을 것입니다 방법 + 300 + 200 + 75)

감사

답변

11

당신은 SUM 다음 그 상단 (4)를 얻을 수있는 파생 테이블 또는 공통 테이블 표현식을 사용할 수 있습니다. 당신이 모든 CodeTOP 4SUM을 원한다면

SELECT SUM(Value) As Top4Sum 
FROM 
(
    SELECT TOP (4) Value 
    FROM YourTable 
    WHERE Code = 'A' 
    ORDER BY Value DESC 
) T 

당신은 아마 질문을 쓴 미스

;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 
+0

할 수있는, 내가 코드 = A, I 퍼팅 생각하는 4 개 가장 높은 값의 합계를 원하는 상위 4 위는 실수였습니다 - 죄송합니다! – Adam

+0

@ 아담 - 글쎄, 내가 쓴 코드는 (반환 875) –

+0

환상적 - 고마워 마틴 :) – Adam