SUM OVER PARTITION BY: Running Total Per Department

SQL coding challenge · Difficulty: easy · +50 XP

Problem

Each department runs its own budget. Show a running total per department — the counter starts fresh for each department.

Tables

Table: dept_sales

| sale_id | dept | day_name | amount |
| 1 | IT | Mon | 100 |
| 2 | IT | Tue | 200 |
| 3 | IT | Wed | 150 |
| 4 | HR | Mon | 300 |
| 5 | HR | Tue | 200 |
| 6 | HR | Wed | 100 |

Expected Output

| sale_id | dept | day_name | amount | dept_running_total |
| 4 | HR | Mon | 300 | 300 |
| 5 | HR | Tue | 200 | 500 |
| 6 | HR | Wed | 100 | 600 |
| 1 | IT | Mon | 100 | 100 |
| 2 | IT | Tue | 200 | 300 |
| 3 | IT | Wed | 150 | 450 |
  • Return: sale_id, dept, day_name, amount, dept_running_total
  • Each department's running total resets independently
  • Sort by dept, then sale_id ascending
  • Function: SUM() OVER (PARTITION BY dept ORDER BY sale_id)

Solve this challenge on PySpark.in