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_idascending - Function to use:
LAG(amount) OVER (ORDER BY sale_id)