SQLNotes: Reformat Department Table

XuanKhanh Nguyen
Nothingaholic
Published in
2 min readOct 3, 2021

--

1179. Reformat Department Table

Problem

Write an SQL query to reformat the table such that there is a department id column and a revenue column for each month.

The query result format is in the following example:

Department table:
+------+---------+-------+
| id | revenue | month |
+------+---------+-------+
| 1 | 8000 | Jan |
| 2 | 9000 | Jan |
| 3 | 10000 | Feb |
| 1 | 7000 | Feb |
| 1 | 6000 | Mar |
+------+---------+-------+
Result table:
+------+-------------+-------------+-------------+-----+-------------+
| id | Jan_Revenue | Feb_Revenue | Mar_Revenue | ... | Dec_Revenue |
+------+-------------+-------------+-------------+-----+-------------+
| 1 | 8000 | 7000 | 6000 | ... | null |
| 2 | 9000 | null | null | ... | null |
| 3 | null | 10000 | null | ... | null |
+------+-------------+-------------+-------------+-----+-------------+
Note that the result table has 13 columns (1 for the department id + 12 for the months).

Solution

Algorithm

We use if condition

# if the month is 'Jan', and that is true, we want to use the revenue field as the input for the Jan_Revenue column otherwise null. if(month = ‘Jan’, revenue, null) as Jan_Revenue

--

--

Nothingaholic
Nothingaholic

Published in Nothingaholic

We love what we do. The moment when we realize we’ve learned something new makes every meeting or change worth it. Learn on!

XuanKhanh Nguyen
XuanKhanh Nguyen

Written by XuanKhanh Nguyen

Interests: Data Science, Machine Learning, AI, Stats, Python | Minimalist | A fan of odd things.

No responses yet