본문 바로가기

SQL/LeetCode

[SQL] Reformat Department Table(LeetCode/Oracle)

안녕하세요!

 

이번 포스팅은 LeetCode에 있는 Reformat Department Table 문제를 OracleDB로 풀어보려고 합니다!

 

(모든 문제는 Oracle로 풀이하겠습니다.)

 

1. 문제 링크 : https://leetcode.com/problems/reformat-department-table/description/

 

2. 문제

Column name Type
id int
revenue int
month varchar
[문제] Reformat the table such that there is a department id column and a revenue column for each month.

각 월의 부서 ID 열과 수익 열이 있도록 테이블을 리포맷하는 문제입니다.

 

3. 제출 쿼리 및 설명

최종) 각 월의 부서 ID와 수익 열로 리포맷하는 쿼리를 완성합니다.

SELECT
    ID,
    SUM(CASE WHEN MONTH = 'Jan' THEN REVENUE END) AS Jan_Revenue,
    SUM(CASE WHEN MONTH = 'Feb' THEN REVENUE END) AS Feb_Revenue,
    SUM(CASE WHEN MONTH = 'Mar' THEN REVENUE END) AS Mar_Revenue,
    SUM(CASE WHEN MONTH = 'Apr' THEN REVENUE END) AS Apr_Revenue,
    SUM(CASE WHEN MONTH = 'May' THEN REVENUE END) AS May_Revenue,
    SUM(CASE WHEN MONTH = 'Jun' THEN REVENUE END) AS Jun_Revenue,
    SUM(CASE WHEN MONTH = 'Jul' THEN REVENUE END) AS Jul_Revenue,
    SUM(CASE WHEN MONTH = 'Aug' THEN REVENUE END) AS Aug_Revenue,
    SUM(CASE WHEN MONTH = 'Sep' THEN REVENUE END) AS Sep_Revenue,
    SUM(CASE WHEN MONTH = 'Oct' THEN REVENUE END) AS Oct_Revenue,
    SUM(CASE WHEN MONTH = 'Nov' THEN REVENUE END) AS Nov_Revenue,
    SUM(CASE WHEN MONTH = 'Dec' THEN REVENUE END) AS Dec_Revenue
FROM DEPARTMENT
GROUP BY ID
;