본문 바로가기

DB/Oracle

[Oracle] SUM ( ) OVER를 활용한 누계 구하기

SUM( ) OVER ( )

- 누계 계산

- 문법

SUM ( 합계 대상 컬럼 ) OVER ( [PARTITION BY 컬럼 ] ORDER BY 컬럼 )

 

- PARTITION BY의 사용으로 세부적 grouping 가능

 

- 예제 1. 1000번 대리점의 판매 내역제품 코드별로 분류한 후 판매일자, 제품코드, 판매량, 판매금액, 누적판매금액을 출력하시오.

 

SELECT P_DATE, P_CODE, P_QTY, P_TOTAL, 

          SUM ( P_TOTAL ) OVER ( PARTITION BY P_CODE ORDER BY P_TOTAL ) "TOTAL"

FROM  PNAMAE

WHERE P_CODE = '1000';

 

  • 1000 번 P_CODE의 내역만 걸러 집계
  • PARTITION BY 구문의 P_CODE로 누적판매금액 집계

 

PARTITION BY 컬럼
분류 기준에 따라 컬럼을 여러 개 지정할 수 있음