SQL
SQL 피봇 테이블 개념 정리
아인슈페너먹고싶다
2023. 1. 27. 00:48
(데이터리안 SQL 강의를 참고하여 작성한 게시물입니다)
데이터 분석에 자주 사용되는 피봇 테이블은 데이터를 요약하는 통계표이다.
테이블 피봇을 통해 행으로 나열되어 있던 데이터를 열 방향으로 변환하는 작업을 거치게 된다.
앞서 RFM에서 봤듯이 SQL은 요약 라이브러리가 따로 있지는 않아서 직접 코드를 작성해주어야한다.
Solve SQL에 있는 문제로 살펴보자면
주문 넘버와, 주문 품목의 카테고리, 주문 지역 이렇게 3개의 column으로 된 테이블이 주어진다.
이 테이블을 토대로 주문 지역과, 주문 품목의 카테고리별 주문 횟수를 파악해
각 범주에 해당하는 수치를 눈으로 보고 싶다면 어떻게 해야할까?
이럴 때 피봇테이블을 만들어 줄 수 있는데
MY SQL로 작성한 코드는 다음과 같다.
1
2
3
4
5
6
7
8
|
Select
region,
count(distinct case when category = 'Furniture' then order_id END) AS Furniture,
count(distinct case when category = 'Office Supplies' then order_id END) AS "Office Supplies",
count(distinct case when category = 'Technology' then order_id END) AS Technology
From records
Group by region
Order by region
|
cs |
CASE문을 활용해서 해당 품목의 카테고리별 주문 넘버를 각각 COUNT 해주고 지역별로 GROUP 해준다.
Distinct를 사용하는 이유는 처음 사진에서도 볼 수 있듯이 주문 넘버가 중복이 되는 경우가 있기 때문이다.
위의 SQL문을 적용하면 다음과 같은 피봇테이블의 결과를 얻을 수 있다.
이를 활용해 기업의 추가적인 분석 및 활용을 통한 전략 수정이 가능할 것이다.
오늘의 SQL은 요기서 끝!