오라클 행을 열로 변환하기 (PIVOT)
소개
오라클에서는 행을 열로 변환하는 기능을 제공하는데, 이를 PIVOT
이라고 합니다. PIVOT
을 사용하면 특정 열 값을 행으로 변환하여 테이블을 보다 효과적으로 분석할 수 있습니다. 이 포스팅에서는 PIVOT
에 대해 상세히 설명하고, 실제로 어떻게 사용하는지 알아보겠습니다.
PIVOT의 작동 원리
PIVOT
은 특정 열 값을 행으로 변환하는 데에 사용됩니다. 예를 들어, 주문 테이블에서 고객별로 주문한 상품을 한 행에 나타내고자 할 때, PIVOT
을 사용하여 상품명을 행으로 변환할 수 있습니다. 이를 통해 분석하기 쉬운 형태로 데이터를 가공할 수 있습니다.
PIVOT 문법
PIVOT
을 사용하기 위해서는 몇 가지 문법을 알아야 합니다.
SELECT *
FROM (
SELECT [열1], [열2], ...
FROM [테이블]
)
PIVOT (
[집계함수] ([PIVOT 기준이 될 열])
FOR [PIVOT할 열]
IN ([열1], [열2], ...)
)
위 문법에서 각 항목의 역할은 다음과 같습니다.
- [열1], [열2], ... : 피벗할 열들을 나열합니다.
- [테이블] : 피벗하고자 하는 테이블을 지정합니다.
- [집계함수] : 피벗한 결과를 집계할 함수를 지정합니다. (예: SUM, COUNT, MAX 등)
- [PIVOT 기준이 될 열] : 피벗을 실행하기 위한 기준이 되는 열을 지정합니다.
- [PIVOT할 열] : 피벗될 열을 지정합니다.
- [열1], [열2], ... : 피벗된 결과로 생성될 열들을 나열합니다.
PIVOT 예제
다음은 실제로 PIVOT
을 사용하는 예제입니다. 주문 테이블에서 고객별로 주문한 상품을 행으로 나타내고자 합니다.
SELECT *
FROM (
SELECT customer_id, product_name
FROM orders
)
PIVOT (
COUNT (product_name)
FOR product_name
IN ('상품A', '상품B', '상품C')
)
위 예제에서는 주문 테이블에서 customer_id
와 product_name
열을 선택합니다. 그리고 PIVOT
을 사용하여 고객별로 주문한 상품을 행으로 표현합니다. 이때, COUNT
함수를 사용하여 각 상품별로 주문 수를 집계합니다. PIVOT
될 열에는 상품명을, 피벗 결과로 생성될 열에는 실제 상품명들을 나열합니다.
마무리
이렇게 하면 주문 테이블의 행을 고객별로 주문한 상품을 열로 표현할 수 있습니다. PIVOT
을 사용하면 보다 효과적으로 데이터를 분석할 수 있으며, 활용 범위는 다양합니다. PIVOT
을 사용하여 데이터를 변환해보세요!
댓글