Pivot table

https://www.kaggle.com/datasets/mirichoi0218/insurance/data

이번에도 캐글 데이터를 이용하여 피벗 테이블을 만들어 볼 것입니다.

기본구조

SELECT 기준컬럼
,max(if(전체컬럼='조_1', cnt_c, 0)) "조_1"
,max(if(전체컬럼='조_2', cnt_c, 0)) "조_2"
,max(if(전체컬럼='조_3', cnt_c, 0)) "조_3"
,max(if(전체컬럼='조_4', cnt_c, 0)) "조_4"
FROM
(SELECT 기준커럼
	   ,case when 조건1 then '조_1'
	     	when 조건2 then '조_2'
	     	when 조건3 then '조_3'
	     	else '조_4' end 전체컬럼
	    , count(1) cnt_c
from 
group by 기준컬럼) a
group by 기준컬럼

이렇게 보면 이해가 잘 안가실 겁니다. 그래서 예제를 통해 테이블을 만들어 봅시다.

[문제] insurance 테이블에서 region 을 기준으로 bmi를 그룹화 하여 구간별 인구분포 정도를 피벗 테이블로 만들어 보세요.

insurance 테이블

image.png

결과 테이블

image.png