[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

Tags:

Categories:

Updated:

Leave a comment