题目来源:
leetcode题目,网址:1179. 重新格式化部门表 - 力扣(LeetCode)
解题思路:
先分组聚合,然后根据月份选出符合要求的 revenue。
解题代码:
# Write your MySQL query statement below
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
order by id
总结:
不会做,看题解的。
当使用group by后 case when 只会匹配每组的第一条数据,使用SUM 会匹配每组中的所有数据。