oracle

오라클 PARTITION BY 데이터 나누기 사용법과 예시

구름Grum 2023. 3. 17. 14:59



PARTITION BY는 SQL에서 사용되는 구문 중 하나로, OVER 절과 함께 사용하여 데이터를 파티션으로 나눌 때 사용합니다.

일반적으로 데이터베이스에서 데이터를 처리할 때, 데이터를 조작하기 위해 일련의 쿼리를 작성하게 됩니다. 이때 PARTITION BY 구문은 데이터를 분할하여 다른 집계 함수를 적용하는 데 사용됩니다.

예를 들어, PARTITION BY 구문을 사용하여 특정 열에 대해 GROUP BY 구문과 유사한 기능을 수행할 수 있습니다. 이는 데이터를 열의 값에 따라 그룹화하여 특정 그룹 내의 집계 함수를 계산하는 데 사용됩니다.

아래는 PARTITION BY 구문의 간단한 예시입니다.

SELECT name, age, salary, AVG(salary) OVER (PARTITION BY name) as avg_salary
FROM employees;


위의 쿼리에서, PARTITION BY 구문은 name 열을 기준으로 데이터를 파티션으로 분할합니다. 그리고 각 파티션 내에서 AVG 함수를 적용하여 각 직원의 평균 급여를 계산합니다. 결과적으로, 결과 집합에는 각 직원의 이름, 나이, 급여, 그리고 해당 직원이 속한 그룹의 평균 급여가 포함됩니다.

예를 들어, 다음과 같은 sales 테이블이 있다고 가정해 봅시다.

이제 PARTITION BY 구문을 사용하여 각 제품별로 sales_amount의 총합을 계산할 수 있습니다.

SELECT
product,
sales_date,
sales_amount,
SUM(sales_amount) OVER (PARTITION BY product) AS total_sales_amount
FROM sales;


위의 쿼리에서, PARTITION BY 구문은 product 열을 기준으로 데이터를 파티션으로 분할합니다. 그리고 각 파티션 내에서 sales_amount 열의 총합을 계산합니다. 결과적으로, 결과 집합에는 각 제품의 판매 날짜, 판매 금액, 그리고 해당 제품의 총 판매 금액이 포함됩니다.


위의 결과에서 볼 수 있듯이, PARTITION BY 구문을 사용하면 각 제품별로 총 판매 금액을 계산할 수 있습니다.