SUM, MIN, MAX, AVG, COUNT등의 집계 함수도 분석함수로 사용할 수 있다.

SUM (누적합계)

아래는 사원의 전체급여 합계(all_sum), 부서별 급여 합계(dept_sum), 부서별로 누적 합계(nujuk_sum)를 조회하는 예이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT empno, ename, deptno,      
       SUM(sal) OVER () all_sum,
       SUM(sal) OVER (PARTITION BY deptno) dept_sum,
       SUM(sal) OVER (PARTITION BY deptno ORDER BY empno) nujuk_sum
 FROM emp;
 
 
 EMPNO ENAME       DEPTNO    ALL_SUM   DEPT_SUM  NUJUK_SUM
------ ------- ---------- ---------- ---------- ----------
  7782 CLARK           10      29025       8750       2450
  7839 KING            10      29025       8750       7450
  7934 MILLER          10      29025       8750       8750
  7369 SMITH           20      29025      10875        800
  7566 JONES           20      29025      10875       3775
  7788 SCOTT           20      29025      10875       6775
  7876 ADAMS           20      29025      10875       7875
  7902 FORD            20      29025      10875      10875
  7499 ALLEN           30      29025       9400       1600
  7521 WARD            30      29025       9400       2850
  7654 MARTIN          30      29025       9400       4100
  7698 BLAKE           30      29025       9400       6950
  7844 TURNER          30      29025       9400       8450
  7900 JAMES           30      29025       9400       9400
  • - ALL_SUM : PARTITION BY절과 ORDER BY절이 생략되어 전체 급여 합계를 계산한다.
  • - DEPT_SUM : PARTITION BY절에 deptno를 사용하여 부서별 급여 합계를 계산한다.
  • - NUJUK_SUM : 부서별로 구분하고, empno로 ORDER BY절을 사용하였다. 사원번호 별로 급여 합계가 누적되어 계산되는 것을 확인 할 수 있다.
분석함수 OVER절 안에서 ORDER BY절을 사용하면 ORDER BY 절의 컬럼을 기준으로 누적되어 계산 된다는 것을 확인 할 수 있다.

태그

문서에 대하여

  • - 강좌 URL : http://www.gurubee.net/lecture/2673
  • - 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
  • 구루비의 모든 강좌는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.


블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,