본문 바로가기
IT/Database

[Oracle] 오라클 PARTITION BY 사용법 정리 (group by 와 차이)

by 성준하이 2024. 2. 2.
반응형

쿼리를 사용할때 partition by 를 사용하여 특정 그룹으로 묶어서 조회, 연산을 할수 있다.

group by 와 비슷할순 있으나 차이에 대해서도 아래 기술할 것이다.

 

먼저 사용법은 아래와 같다.

분석함수([칼럼]) OVER(PARTITION BY 칼럼1, 칼럼2... [ORDER BY 절] [WINDOWING 절])

 

SUM 함수
SELECT empno
     , ename
     , job
     , sal
     , SUM(sal) OVER(PARTITION BY job)
  FROM emp
 WHERE job IN ('MANAGER', 'SALESMAN')
 ORDER BY job

 

그 밖에  COUNT, MAX, MIN, SUM, AVG 함수도 SUM 과 비슷하게 사용이 가능하다.

ROW_NUMBER 함수
SELECT empno
     , ename
     , job
     , sal
     , ROW_NUMBER() OVER(PARTITION BY job ORDER BY sal) AS rn
  FROM emp
 WHERE job IN ('MANAGER', 'SALESMAN')
 ORDER BY job

 

그 밖에 ROW_NUMBER, RANK, DENSE_RANK 역시 사용 비슷하다.

 

 

GROUP BY 와 비슷한점, 차이점

 

유사점 PARTITION BY와 GROUP BY 모두 집계된 값을 반환할 때 사용
차이점 GROUP BY를 사용하면 기존 행들이 합쳐짐
집계된 값을 반환하면서 원래 행에 있었던 값을 함께 볼 수 없다.
하지만 PARTITION BY를 사용할 경우 집계된 값을 반환하면서 동시에 기존 행의 값들도 함께 볼 수 있다.

 

반응형

댓글