https://leetcode.com/problems/reformat-department-table/description/ | Easy |
---|
Дана таблица Department
со столбцами:
column | type | описание |
---|---|---|
id | int | идентификатор отдела |
revenue | int | доход отдела за указанный месяц |
month | varchar | название месяца, значения из ['Jan','Feb','Mar',…,'Dec'] |
(id, month) — составной первичный ключ.
Таблица содержит информацию о доходах каждого отдела по месяцам.
Напишите SQL-запрос, который преобразует эту таблицу так, чтобы каждая строка содержала id
и 12 отдельных столбцов Jan_Revenue
, Feb_Revenue
, …, Dec_Revenue
. Порядок строк может быть любым.
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;