내일배움캠프/TIL

2024.10.04(금) SQL로 피벗테이블 만들기

에디터 윤슬 2024. 10. 4. 12:44

1. 피벗테이블(Pivot table)이란?

  • 2개 이상의 기준으로 데이터를 집계할 때, 보기 쉽게 배열하여 보여주는 것
  • 기본 구조
    • 집계 기준 / 구분 컬럼 / 데이터
    • 예시: 집계 기준 일자와 시간으로 구성된 일자별 주문 건수 피벗테이블
  1시 2시 3시 4시
10월 1일 5 3 5 2
10월 2일 7 10 1 8
10월 3일 3 5 9 4
10월 4일 9 14 19 1

 

  • 실습
    • 성별, 연령별 주문건수 Pivot Table 뷰 만들기
select age,
	max(if(gender='male', cnt_order, 0)) as "male",
	max(if(gender='female', cnt_order, 0)) as "female"
from 
(
select gender,
	case
		when age between 10 and 19 then 10
		when age between 20 and 29 then 20
		when age between 30 and 39 then 30
		when age between 40 and 49 then 40
		when age between 50 and 59 then 50
	end as age,
	count(1) as cnt_order	
from food_orders f inner join customers c on f.customer_id=c.customer_id
where age between 10 and 59
group by 1, 2
) a
group by 1
order by 1 desc
;