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에 값을 넣어주는 것이다.
'Algorithm & SQL > LeetCode' 카테고리의 다른 글
[LeetCode 181번 / MySQL] 181 : Employees Earning More Than Their Managers (0) | 2024.03.10 |
---|---|
[LeetCode 183번 / MySQL] 183 : Customers Who Never Order (0) | 2024.03.10 |
[LeetCode 182번 / MySQL] 182 : Duplicate Emails (0) | 2024.03.10 |
[LeetCode 595번 / MySQL] 595 : Big Countries (0) | 2024.03.10 |
[LeetCode 620번 / MySQL] 620 : Not Boring Movies (0) | 2024.03.10 |