-
[SQL] 가로 데이터를 세로로 변환하기 (SQL 난이도 중)SQL 배우기 2024. 1. 12. 11:48
[문제] 표1과 같은 가로 형태의 테이블을 표2로 변환하시오.
[표1]
year q1 q2 q3 q4 2015 82000 83000 78000 83000 2016 85000 85000 80000 81000 2017 92000 81000 [표2]
year quarter sales 2015 q1 82000 2015 q2 83000 : : : 2017 q4 [아이디어]
컬럼으로 표현된 가로 기반 데이터의 특징은 데이터의 수가 고정되었다는 것입니다. (q1, q2, q3, q4)
행으로 전대할 데이터가 고정되었다면, 데이터 수와 같은 수의 일련 번호를 가진 피벗 테이블을 만들고 CROSS JOIN 하면 됩니다.
select q.year , case when p.idx = 1 then 'q1' when p.idx = 2 then 'q2' when p.idx = 3 then 'q3' when p.idx = 4 then 'q4' end as quarter , case when p.idx = 1 then q.q1 when p.idx = 2 then q.q2 when p.idx = 3 then q.q3 when p.idx = 4 then q.q4 end as sales from quarterly_sales as q cross join ( select 1 as idx union all select 2 as idx union all select 3 as idx union all select 4 as idx ) as p
참고 자료 : 데이터 분석을 위한 SQL 레시피 ([가사키 나가토, 다미야 나오토], 한빛미디어)
'SQL 배우기' 카테고리의 다른 글
[SQL] 입양 시각 구하기(2) 재귀 쿼리 WITH RECURSIVE (0) 2024.03.19 [SQL] 그룹별 조건에 맞는 식당 목록 출력하기 SQL (0) 2024.03.19 [HiveSQL] 특정 문자 기준으로 문자열 나누기 (특수문자 해결) (0) 2024.01.11 주피터노트북에서 MySQL 설치 및 연동하기 (0) 2024.01.10 [SQL] NULL 값이 있을 때 연산하기 (SIGN, COALESCE) (0) 2024.01.09