Reformat Department Table — LeetCode 1179 Python Solution
EasyDatabase
- Problem
- #1179
- Reading time
- 12 min
- Source
- leetcode.com
Table schema
SQL
Table: Department +-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | revenue | int | | month | varchar | +-------------+---------+ In SQL,(id, month) is the primary key of this table. The table has information about the revenue of each department per month.Example
SQL
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| id | int |
| revenue | int |
| month | varchar |
+-------------+---------+
In SQL,(id, month) is the primary key of this table.
The table has information about the revenue of each department per month.
The month has values in ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"].Python solution
Python
import duckdb
import pandas as pd
def solution(department: pd.DataFrame) -> pd.DataFrame:
con = duckdb.connect()
con.register("Department", department)
return con.execute("""SELECT
id,
SUM(
CASE month
WHEN 'Jan' THEN revenue
END
) AS Jan_Revenue,
SUM(
CASE month
WHEN 'Feb' THEN revenue
END
) AS Feb_Revenue,
SUM(
CASE month
WHEN 'Mar' THEN revenue
END
) AS Mar_Revenue,
SUM(
CASE month
WHEN 'Apr' THEN revenue
END
) AS Apr_Revenue,
SUM(
CASE month
WHEN 'May' THEN revenue
END
) AS May_Revenue,
SUM(
CASE month
WHEN 'Jun' THEN revenue
END
) AS Jun_Revenue,
SUM(
CASE month
WHEN 'Jul' THEN revenue
END
) AS Jul_Revenue,
SUM(
CASE month
WHEN 'Aug' THEN revenue
END
) AS Aug_Revenue,
SUM(
CASE month
WHEN 'Sep' THEN revenue
END
) AS Sep_Revenue,
SUM(
CASE month
WHEN 'Oct' THEN revenue
END
) AS Oct_Revenue,
SUM(
CASE month
WHEN 'Nov' THEN revenue
END
) AS Nov_Revenue,
SUM(
CASE month
WHEN 'Dec' THEN revenue
END
) AS Dec_Revenue
FROM Department
GROUP BY 1;""").df()Complexity
| Measure | Complexity |
|---|---|
| Time | O(n log n) (typical) |
| Space | O(n) auxiliary |
Related problems
Frequently asked questions
- How hard is LeetCode 1179. Reformat Department Table?
- LeetCode 1179. Reformat Department Table is rated Easy on LeetCode.
- What topics does LeetCode 1179. Reformat Department Table cover?
- LeetCode 1179. Reformat Department Table is tagged Database on LeetCode.