SUM(Transact-SQL)
식의 모든 값 또는 DISTINCT 값의 합계를 반환합니다. SUM은 숫자 열에서만 사용할 수 있습니다. Null 값은 무시됩니다. OVER 절이 뒤에 올 수도 있습니다.
구문
SUM ( [ ALL | DISTINCT ] expression )
인수
- ALL
모든 값에 집계 함수를 적용합니다. 기본값은 ALL입니다.
- DISTINCT
SUM이 고유한 값의 합계를 반환하도록 지정합니다.
- expression
상수, 열 또는 함수이며 산술, 비트 및 문자열 연산자의 조합입니다. expression은 bit 데이터 형식을 제외한 정확한 수치 또는 근사치 숫자 데이터 형식 범주의 식입니다. 집계 함수와 하위 쿼리는 허용되지 않습니다. 자세한 내용은 식(Transact-SQL)을 참조하십시오.
반환 유형
가장 정확한 expression 데이터 형식으로 모든 expression 값의 합계를 반환합니다.
식 결과 | 반환 유형 |
---|---|
integer 범주 |
int |
decimal 범주(p, s) |
decimal(38, s) |
money 및 smallmoney 범주 |
money |
float 및 real 범주 |
float |
중요: |
---|
CUBE 또는 ROLLUP을 사용할 경우 고유 집계, 예를 들어 AVG(DISTINCT column_name), COUNT(DISTINCT column_name), MAX(DISTINCT column_name), MIN(DISTINCT column_name) 및 SUM(DISTINCT column_name)은 지원되지 않습니다. 고유 집계를 사용할 경우 SQL Server 2005 데이터베이스 엔진에서 오류 메시지를 반환하고 쿼리를 취소합니다. |
예
1. 집계 및 행 집계를 위해 SUM 사용
다음 예에서는 집계 함수와 행 집계 함수의 차이를 보여 줍니다. 첫 번째 예에서는 요약 데이터만 반환하는 집계 함수를 보여 주며 두 번째 예에서는 세부 데이터와 요약 데이터를 모두 반환하는 행 집계 함수를 보여 줍니다.
USE AdventureWorks;
GO
SELECT Color, SUM(ListPrice), SUM(StandardCost)
FROM Production.Product
WHERE Color IS NOT NULL AND ListPrice != 0.00 AND Name LIKE 'Mountain%'
GROUP BY Color
ORDER BY Color;
GO
결과 집합은 다음과 같습니다.
Color
--------------- --------------------- ---------------------
Black 27404.84 15214.9616
Silver 26462.84 14665.6792
White 19.00 6.7926
(3 row(s) affected)
USE AdventureWorks;
GO
SELECT Color, ListPrice, StandardCost
FROM Production.Product
WHERE Color IS NOT NULL AND ListPrice != 0.00 AND Name LIKE 'Mountain%'
ORDER BY Color
COMPUTE SUM(ListPrice), SUM(StandardCost) BY Color;
GO
결과 집합은 다음과 같습니다.
Color ListPrice StandardCost
--------------- --------------------- ---------------------
Black 2294.99 1251.9813
Black 2294.99 1251.9813
Black 2294.99 1251.9813
Black 1079.99 598.4354
Black 1079.99 598.4354
Black 1079.99 598.4354
Black 1079.99 598.4354
Black 3374.99 1898.0944
Black 3374.99 1898.0944
Black 3374.99 1898.0944
Black 3374.99 1898.0944
Black 539.99 294.5797
Black 539.99 294.5797
Black 539.99 294.5797
Black 539.99 294.5797
Black 539.99 294.5797
sum sum
--------------------- ---------------------
27404.84 15214.9616
Color ListPrice StandardCost
--------------- --------------------- ---------------------
Silver 2319.99 1265.6195
Silver 2319.99 1265.6195
Silver 2319.99 1265.6195
Silver 3399.99 1912.1544
Silver 3399.99 1912.1544
Silver 3399.99 1912.1544
Silver 3399.99 1912.1544
Silver 769.49 419.7784
Silver 769.49 419.7784
Silver 769.49 419.7784
Silver 769.49 419.7784
Silver 564.99 308.2179
Silver 564.99 308.2179
Silver 564.99 308.2179
Silver 564.99 308.2179
Silver 564.99 308.2179
sum sum
--------------------- ---------------------
26462.84 14665.6792
Color ListPrice StandardCost
--------------- --------------------- ---------------------
White 9.50 3.3963
White 9.50 3.3963
sum sum
--------------------- ---------------------
19.00 6.7926
(37 row(s) affected)
2. 두 개 이상의 열에 대한 그룹 합계 계산
다음 예에서는 Product
테이블에 나열된 각 색에 대한 ListPrice
및 StandardCost
의 합계를 계산합니다.
USE AdventureWorks;
GO
SELECT Color, SUM(ListPrice), SUM(StandardCost)
FROM Production.Product
GROUP BY Color
ORDER BY Color
GO
결과 집합은 다음과 같습니다.
Color
--------------- --------------------- ---------------------
NULL 4182.32 2238.4755
Black 67436.26 38636.5002
Blue 24015.66 14746.1464
Grey 125.00 51.5625
Multi 478.92 272.2542
Red 53274.10 32610.7661
Silver 36563.13 20060.0483
Silver/Black 448.13 198.97
White 36.98 13.5172
Yellow 34527.29 21507.6521
(10 row(s) affected)
참고 항목
참조
집계 함수(Transact-SQL)
OVER 절(Transact-SQL)