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) 라이선스에 따라 자유롭게 사용할 수 있습니다.
'Oracle' 카테고리의 다른 글
LAG, LEAD (다른 행의 값을 참조) (0) | 2014.12.03 |
---|---|
윈도우 함수 WINDOWNING PRECEDING (0) | 2014.12.03 |
순위함수 RANK DENSE_RANK ROW_NUMBER 특징별 기억하면 좋고 (0) | 2014.12.03 |
집계함수와 분석함수 (0) | 2014.12.03 |
오라클 분석해보기.. A CONNECT BY LEVEL (0) | 2014.12.03 |