Algorithm & SQL/LeetCode
[LeetCode 1179번 / MySQL] 1179 : Reformat Department Table
김룹
2024. 3. 10. 12:36
https://leetcode.com/problems/reformat-department-table/description/
SELECT id
,SUM(CASE WHEN month = 'Jan' THEN revenue ELSE NULL END) AS Jan_Revenue
,SUM(CASE WHEN month = 'Feb' THEN revenue ELSE NULL END) AS Feb_Revenue
,SUM(CASE WHEN month = 'Mar' THEN revenue ELSE NULL END) AS Mar_Revenue
,SUM(CASE WHEN month = 'Apr' THEN revenue ELSE NULL END) AS Apr_Revenue
,SUM(CASE WHEN month = 'May' THEN revenue ELSE NULL END) AS May_Revenue
,SUM(CASE WHEN month = 'Jun' THEN revenue ELSE NULL END) AS Jun_Revenue
,SUM(CASE WHEN month = 'Jul' THEN revenue ELSE NULL END) AS Jul_Revenue
,SUM(CASE WHEN month = 'Aug' THEN revenue ELSE NULL END) AS Aug_Revenue
,SUM(CASE WHEN month = 'Sep' THEN revenue ELSE NULL END) AS Sep_Revenue
,SUM(CASE WHEN month = 'Oct' THEN revenue ELSE NULL END) AS Oct_Revenue
,SUM(CASE WHEN month = 'Nov' THEN revenue ELSE NULL END) AS Nov_Revenue
,SUM(CASE WHEN month = 'Dec' THEN revenue ELSE NULL END) AS Dec_Revenue
FROM department
GROUP BY id
느낀 점 및 정리 ✍️
1. CASE를 활용하여 피벗 테이블을 만들었다
2. 예를 들어, month의 값이 Jan인 revenue의 값들을 합산하여 Jan_Revenue에 값을 넣어주는 것이다.