반응형
오라클 데이터베이스에서 PARTITION BY 절은 데이터를 특정 기준에 따라 그룹화하고, 각 그룹 내에서 별도의 연산을 수행할 수 있게 해준다. 이는 분석 함수와 함께 사용되어 데이터의 부분집합에 대해 연산을 수행하는 데 매우 유용하다. 이번 글에서는 PARTITION BY 절의 동작 원리와 이를 활용한 실습 예제를 정리한다.
PARTITION BY의 동작원리
- 데이터 파티셔닝: 지정된 컬럼 또는 표현식에 따라 데이터를 파티션으로 나눈다. 각 파티션은 지정된 컬럼 또는 표현식의 값이 동일한 행들로 구성된다.
- 파티션 내 정렬: ORDER BY 절을 사용하여 각 파티션 내에서 지정된 커럼 또는 표현식에 따라 행들을 정렬한다. 정렬 기준은 각 파티션 내에서만 적용된다.
- 분석 함수 적용: 지정된 분석 함수가 각 파티션 내의 데이터에 대해 연산을 수행한다. 자주 사용되는 분석 함수로는 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 절에 지정한 컬럼들이 모두 일치하는 것이 하나의 그룹이 된다.
반응형
'Database' 카테고리의 다른 글
데이터베이스 테이블 파티셔닝 개념과 사용 예제 (0) | 2024.06.23 |
---|---|
복합 인덱스 사용 가이드: 최적의 성능을 위한 인덱스 생성과 활용 방법 (0) | 2024.06.23 |
날짜 파티션 인덱스 최적화: TRUNC와 형변환을 피하는 방법 (0) | 2024.05.19 |
[Oracle] 조인(Join) 알고리즘 (0) | 2024.05.04 |
[Oracle] SQL 쿼리에 대한 옵티마이저 힌트를 제공하는 문법 (0) | 2024.05.04 |