1.3 집계함수

출처 URL : http://www.gurubee.net/lecture/2673

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

SUM (누적합계)

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

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 절의 컬럼을 기준으로 누적되어 계산 된다는 것을 확인 할 수 있다.


답글 남기기 0

Your email address will not be published. Required fields are marked *