Oracle Advanced SQL 강좌
집계함수 2 8 99,999+

by 마농 집계함수 SUM COUNT 누적합 분석함수 [2014.01.14]


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

- 강좌 URL : http://www.gurubee.net/lecture/2673

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 팔오 [2014.02.25 18:31:45]
구르비에 제가 원하는 자료가 다 있네요~ 좋아요~
감사합니다~

by 문성숙 [2014.03.04 15:01:07]
order by 로 누적을 구할줄은 꿈에도 몰랐네요.  너무 공부를 안해서~~

요 몇년동안 아는 지식으로만 일하다 보니 쿼리가 계속 길어지기만 했는데, 

이제부터라도 여기에 있는 강좌를 꾸준히 봐 가면서 쿼리 길이좀 줄여야 겠어요.

너무 좋은 강좌 감사합니다.

by 슬다 [2014.04.14 15:09:23]
강의 잘 보고 있습니다.

by 키티마징가 [2014.05.27 14:07:07]

다른 곳에서는 절대 볼 수 없는 배려심 깊은 설명~


by 박민철 [2014.08.28 16:42:19]

좋은 정보 감사요^^


by 준티 [2015.12.18 13:36:43]

order by 누적은 몰랐네요.. 배워갑니다


by 요타바이트 [2016.05.12 17:12:26]

배워갑니다.


by 돼지가면 [2016.08.10 15:51:06]

깊은 감동....

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입