문법 |
목적 |
SUM함수는 expr의 값의 합을 반환한다. 집계함수 또는 분석함수로 사용할수 있다.
이 함수는 임의의 수치 데이터 형 또는 암묵적으로 수치 데이터 형으로 변환가능한 임의의 비수치
데이터형을 취힌다. 이 함수는 인수의 수치 데이터형과 같은 데이터형을 반환한다.
만약 DISTINCT를 지정했다면, analytic_clause의 query_partition_clause을
지정할수 있다. 그러나, order_by_clause
과 windowing_clause은
허용하지 않는다.
예제 |
다음 예제는 HR.employees테이블에서 모든 급여의 합계를 계산한다.
SELECT SUM(salary) "Total"
FROM employees;
Total
----------
691400
다음 예제는 HR.employees 테이블에서 같은 Manager에 대하여, 현재 급여 이하의
종업원의 급여의 누적 합계를 계산한다. 여기서 Raphaely와 Cambrault는 동일한 급여이기 때문에(논리적으로 같이 취급됨. 급여에
대하여 소트를 하여서 같은 것으로 취급됨),오라클 데이터 베이스는 그들의 급여를 동시에 추가하여, 양쪽 행에 같은 누적 합계를 적용한다.
SELECT manager_id, last_name, salary,
SUM(salary) OVER (PARTITION BY manager_id ORDER BY salary
RANGE UNBOUNDED PRECEDING) l_csum
FROM employees;
MANAGER_ID LAST_NAME SALARY L_CSUM
---------- --------------- ---------- ----------
100 Mourgos 5800 5800
100 Vollman 6500 12300
100 Kaufling 7900 20200
100 Weiss 8000 28200
100 Fripp 8200 36400
100 Zlotkey 10500 46900
100 Raphaely 11000 68900
100 Cambrault 11000 68900
100 Errazuriz 12000 80900
. . .
149 Taylor 8600 30200
149 Hutton 8800 39000
149 Abel 11000 50000
201 Fay 6000 6000
205 Gietz 8300 8300
King 24000 24000