SUM
구문
SUM([ DISTINCT | ALL ] expr)
[ OVER (analytic_clause) ]
참고:
구문, 의미, 그리고 제한 사항에 대한 정보는 "Analytic Functions"에 대한 내용을 참조하세요.
목적
SUM 함수는 expr의 값들의 합을 반환합니다. 이 함수는 집계 함수로 사용하거나 분석 함수로 사용할 수 있습니다.
이 함수는 숫자 데이터 형식 또는 숫자 데이터 형식으로 암시적으로 변환할 수 있는 비숫자 데이터 형식을 인수로 사용합니다. 함수는 인수의 숫자 데이터 형식과 동일한 데이터 형식을 반환합니다.
참고:
암묵적 변환에 대한 자세한 내용은 표 2-8을 참조하십시오.
만약 DISTINCT를 지정한다면, 집계 함수에 대한 query_partition_clause만 지정할 수 있습니다. order_by_clause 및 windowing_clause는 허용되지 않습니다.
참고:
"Aggregate Functions" 및 expr의 유효한 형식에 대한 정보는 "About SQL Expressions"를 참조하십시오.
집계 예제
다음 예제는 샘플 hr.employees 테이블의 모든 급여 합계를 계산합니다:
SELECT SUM(salary) "Total"
FROM employees;
Total
----------
691400
분석 예제
다음 예제는 샘플 테이블 hr.employees의 각 매니저에 대해 해당 매니저에 속한 직원의 급여 중 현재 급여와 같거나 작은 급여의 누적 합계를 계산합니다. Raphaely와 Cambrault가 동일한 누적 합계를 가지는 것을 볼 수 있습니다. 이것은 Raphaely와 Cambrault가 동일한 급여를 받기 때문에 Oracle Database가 그들의 급여 값을 더하고 두 행에 동일한 누적 합계를 적용하기 때문입니다.
SELECT manager_id, last_name, salary,
SUM(salary) OVER (PARTITION BY manager_id ORDER BY salary
RANGE UNBOUNDED PRECEDING) l_csum
FROM employees
ORDER BY manager_id, last_name, salary, l_csum;
MANAGER_ID LAST_NAME SALARY L_CSUM
---------- ------------------------- ---------- ----------
100 Cambrault 11000 68900
100 De Haan 17000 155400
100 Errazuriz 12000 80900
100 Fripp 8200 36400
100 Hartstein 13000 93900
100 Kaufling 7900 20200
100 Kochhar 17000 155400
100 Mourgos 5800 5800
100 Partners 13500 107400
100 Raphaely 11000 68900
100 Russell 14000 121400
. . .
149 Hutton 8800 39000
149 Johnson 6200 6200
149 Livingston 8400 21600
149 Taylor 8600 30200
201 Fay 6000 6000
205 Gietz 8300 8300
King 24000 24000
출처: 오라클 레퍼런스
원문 링크: Oracle SUM 함수 문서
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] SYS_CONTEXT - 네임스페이스(namespace)에 연결된 파라미터(parameter) 값 반환 (0) | 2023.08.24 |
---|---|
[오라클 레퍼런스 함수] SYS_CONNECT_BY_PATH - 계층적 쿼리에서 경로 반환 (0) | 2023.08.23 |
[오라클 레퍼런스 함수] SUBSTR - 문자열 일부 추출 (0) | 2023.08.21 |
[오라클 레퍼런스 함수] STDDEV_SAMP - 샘플 데이터의 표준 편차 반환 (데이터가 1건인 경우 null 반환) (0) | 2023.08.21 |
[오라클 레퍼런스 함수] STDDEV_POP - 모집단의 표준 편차 반환 (0) | 2023.08.21 |
댓글