[SQL] 050. 데이터 분석 함수로 누적 데이터 출력하기
Updated:
초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.
오라클 SQL을 기반으로 합니다.
실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.
[예시]
SUM() OVER
로 누적 합계를 구할 수 있다.
정렬 기준을 설정한 후 첫 번째 행부터 현재 행까지 더하여 누적 합계를 구한다.
다음은 특정 행을 지정하는 명령어이다.
-
UNBOUNDED PRECEDING
: 첫 번째 행 -
UNBOUNDED FOLLOWING
: 마지막 행 -
CURRENT ROW
: 현재 행
SELECT EMPNO, ENAME, SAL,
SUM(SAL) OVER (ORDER BY ENAME ROWS
BETWEEN UNBOUNDED PRECEDING
AND CURRENT ROW) AS 누적합계,
SUM(SAL) OVER (ORDER BY ENAME ROWS
BETWEEN UNBOUNDED PRECEDING
AND UNBOUNDED FOLLOWING) AS "전체합계로 출력"
FROM EMP
WHERE JOB IN ('ANALYST', 'MANAGER');
[결과]
UNBOUNDED PRECEDING
부터 CURRENT ROW
까지 더하여 누적합계로 출력되었다.
UNBOUNDED PRECEDING
부터 UNBOUNDED FOLLOWING
까지 더하여 전체합계로 출력되었다.
EMPNO | ENAME | SAL | 누적합계 | 전체합계로 출력 |
---|---|---|---|---|
7698 | BLAKE | 2850 | 2850 | 14275 |
7782 | CLARK | 2450 | 5300 | 14275 |
7902 | FORD | 3000 | 8300 | 14275 |
7566 | JONES | 2975 | 11275 | 14275 |
7788 | SCOTT | 3000 | 14275 | 14275 |
Leave a comment