Leet) No.1179 [Reformat Department Table]
본문 바로가기
Data Base/Leetcode

Leet) No.1179 [Reformat Department Table]

by 조훈이 2021. 8. 30.

Leetcode No.1179 [Reformat Department Table]


  문제 

Reformat Department Table - LeetCode

 

Reformat Department Table - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


  설명 

 

  위와 같이 Department table 의 data를 id column 으로 그룹화 시키고, Jan_Revenue ~ Dec_Revenue Column 을 만들어야 한다. 각 id 별로 Result table 에서 본인 id 에 해당하는 그룹에서 month 와 일치하는 column 에 revenue 값을 더해야 한다. 따라서 SUM(CASE WHEN month = '<Data>' THEN revenue END) AS <Column name> 으로 포함된 id 그룹의 해당 month 에 대한 Column 에 revenue 의 값을 더하도록 구현하였다.

  SUM() 집계함수는 NULL 값에 대해서 무시를 한다. 0으로 취급하는 셈 이기 때문에 NULL 값들은 모두 무시됨으로써 0으로 취급받는 것과 동일하다.


  Code 

더보기
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;
728x90

'Data Base > Leetcode' 카테고리의 다른 글

Leetcode) No.262 [Trips and Users]  (0) 2022.04.04
Leetcode) No.626 [Exchange Seats]  (0) 2021.09.04
Leetcode) No.180 [Consecutive Numbers]  (0) 2021.09.03
Leet) No.175 [Combine Two Tables]  (0) 2021.08.31

댓글