LAG: Show Previous Day's Sales Amount

SQL coding challenge · Difficulty: easy · +50 XP

Problem

The daily operations report shows each day's sales alongside the previous day's number — so managers can instantly spot drops without mental math.

Tables

Table: daily_sales

| sale_id | day_name | amount |
| 1 | Mon | 100 |
| 2 | Tue | 200 |
| 3 | Wed | 300 |
| 4 | Thu | 400 |
| 5 | Fri | 500 |

Expected Output

| sale_id | day_name | amount | prev_day_sales |
| 2 | Tue | 200 | 100 |
| 3 | Wed | 300 | 200 |
| 4 | Thu | 400 | 300 |
| 5 | Fri | 500 | 400 |
  • Return: sale_id, day_name, amount, prev_day_sales
  • First row → NULL (no previous day)
  • Sort by sale_id ascending
  • Function to use: LAG(amount) OVER (ORDER BY sale_id)

Solve this challenge on PySpark.in