본문 바로가기
Database

[Oracle] Partition By 절을 활용한 데이터 그룹화 및 분석

by 떡쇠 2024. 6. 23.
반응형

오라클 데이터베이스에서 PARTITION BY 절은 데이터를 특정 기준에 따라 그룹화하고, 각 그룹 내에서 별도의 연산을 수행할 수 있게 해준다. 이는 분석 함수와 함께 사용되어 데이터의 부분집합에 대해 연산을 수행하는 데 매우 유용하다. 이번 글에서는 PARTITION BY 절의 동작 원리와 이를 활용한 실습 예제를 정리한다.


PARTITION BY의 동작원리

  1. 데이터 파티셔닝: 지정된 컬럼 또는 표현식에 따라 데이터를 파티션으로 나눈다. 각 파티션은 지정된 컬럼 또는 표현식의 값이 동일한 행들로 구성된다.
  2. 파티션 내 정렬: ORDER BY 절을 사용하여 각 파티션 내에서 지정된 커럼 또는 표현식에 따라 행들을 정렬한다. 정렬 기준은 각 파티션 내에서만 적용된다.
  3. 분석 함수 적용: 지정된 분석 함수가 각 파티션 내의 데이터에 대해 연산을 수행한다. 자주 사용되는 분석 함수로는 RON_NUMBER(),  RANK(), DENSE_RANK(), SUM(). AVG(), MAX, MIN(), COUNT()등이 있다.
SELECT column1,
       column2,
       ROW_NUMBER() OVER (PARTITION BY column1, column2 ORDER BY some_other_column) AS row_num
  FROM my_table;
  
  -- 분석 함수 OVER (PARTITION BY <파티션 컬럼> ORDER BY <정렬 컬럼>)

위 예제로 간단하게 요약하자면

column1과 column2의 값이 모두 일치하는 행들을 하나의 그룹으로 만들고 ORDER BY 절에 따라 행들을 정렬한다. 그리고 ROW_NUMBER() 함수로 정렬된 순서에 따라 각 행에 번호를 붙인다.

PARTITION BY 절에 지정한 컬럼들이 모두 일치하는 것이 하나의 그룹이 된다.

반응형