[SQLP]Oracle PIVOT/UNPIVOT

·2025년 2월 18일

SQLP

목록 보기
19/20

😺 PIVOT이란?

행(가로) 데이터를 열(세로) 데이터로 변환

테이블 생성, 데이터 삽입, 테이블 확인

CREATE TABLE Sales_test (
    SaleDate DATE,
    Product VARCHAR(50),
    Quantity INT
);


INSERT ALL
  INTO Sales_test (SaleDate, Product, Quantity) VALUES ('2025-01-01', 'Apple', 10)
  INTO Sales_test (SaleDate, Product, Quantity) VALUES ('2025-01-01', 'Banana', 5)
  INTO Sales_test (SaleDate, Product, Quantity) VALUES ('2025-01-01', 'Orange', 7)
  INTO Sales_test (SaleDate, Product, Quantity) VALUES ('2025-01-02', 'Apple', 8)
  INTO Sales_test (SaleDate, Product, Quantity) VALUES ('2025-01-02', 'Banana', 6)
  INTO Sales_test (SaleDate, Product, Quantity) VALUES ('2025-01-02', 'Orange', 9)
SELECT * FROM dual;

SELECT * FROM sales_test;

문법
select *
from (피봇할 쿼리문)
pivot(그룹함수(집계컬럼) for 피벗대상컬럼 in([피벗컬럼값] AS [별칭]...)

SaleDate별로 Product('Apple', 'Banana', 'Orange')의 Quantity 합계를 계산하여 각 제품별 판매량을 열로 보여줌

😺 UNPIVOT

열(세로) 데이터를 행(가로) 데이터로 변환

문법
SELECT *
FROM (피벗 대상 쿼리문)
UNPIVOT (
컬럼 별칭 (값)
FOR 컬럼 별칭 (열)
IN (피벗 열 1, 피벗 열 2, ... )
);

Apple, Banana, Orange의 각 값을 Product라는 하나의 열로 합친다. 이 때, Quantity는 변하지 않으며, 각 제품에 대한 값을 펼친다.

profile
냐홍

0개의 댓글