-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path1179.Reformat-Department-Table.sql
40 lines (39 loc) · 1.48 KB
/
1179.Reformat-Department-Table.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
--MySQL
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;
--MS SQL Server
SELECT * FROM
(SELECT
revenue, month+'_Revenue' AS m,
id
FROM Department) t
PIVOT (
SUM(revenue)
FOR m IN ( [Jan_Revenue],
[Feb_Revenue],
[Mar_Revenue],
[Apr_Revenue],
[May_Revenue],
[Jun_Revenue],
[Jul_Revenue],
[Aug_Revenue],
[Sep_Revenue],
[Oct_Revenue],
[Nov_Revenue],
[Dec_Revenue]
)
) AS pivot_table;