• Home
  • About
    • 최정재 photo

      최정재

      창의적인 시각으로 다양한 가능성을 탐색하는 개발의 모험가

    • Learn More
    • Email
    • Instagram
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

[SQLD] PIVOT, UNPIVOT

29 Feb 2024

Reading time ~1 minute

이번 2024년도 SQLD에 추가된 PIVOT 절과 UNPIVOT 절에 대해서 알아보도록 하겠다.
PIVOT, UNPIVOT 내용은 노랭이 개정판에도 추가되지 않아 어떤 느낌의 문제가 나올지 감이 잡히진 않지만 쓰는 방법을 알면 문제도 풀 수 있지않을까?

ORACLE에서의 PIVOT, UNPIVOT

PIVOT

  • PIVOT은 행 데이터를 열 데이터로 변환하는 것.
    일반적으로 특정 열을 기준으로 집계를 수행하고 이를 새로운 열로 표현함.
  • PIVOT은 특정 열의 고유한 값에 따라 행을 그룹화하고 이를 새로운 열로 변환함.
  • 예를 들어, 날짜별 판매량으로 집계 할 때, PIVOT을 사용하여 날짜를 열로 변환하고 날짜에 대한 판매량을 표시 할 수 있음.

원본 데이터

2

PIVOT을 이용한 SQL문

SELECT *
    FROM (
        SELECT 상품, 날짜, 판매량
            FROM SALES
        ) 
    PIVOT (
        SUM(판매량)
            FOR 날짜 IN ('2024-02-01','2024-02-02')
    );

결과

3

UNPIVOT

이름과 같이 PIVOT과 반대로 동작을 수행함. (반대 연산자는 아님 집계 함수를 사용한 PIVOT 테이블을 UNPIVOT 한다고 원래대로 안돌아감.) 열을 행으로 변환한다는 뜻.

원본 데이터

4

UNPIVOT을 이용한 SQL문

SELECT * 
    FROM SEASON
    UNPIVOT(
        할인률 
            FOR 계절 IN (봄, 여름, 가을, 겨울)
    );

결과

5



SQLD Share Tweet +1