Lessons › SQL › Go further in SQL: Business questions
SQL lesson
How did each store do in March vs February?
How did each store do in March compared with February? You need two totals in each store's row: one for March, one for February. WHERE can't do that, because it would keep only one month. Instead, each SUM picks its own month's rows: CASE WHEN the date is in March THEN the revenue ELSE 0.
Try this lesson free →Example
Two months side by side
SELECT store,
SUM(CASE WHEN order_date < '2026-03-01' THEN revenue ELSE 0 END) AS feb_revenue,
SUM(CASE WHEN order_date >= '2026-03-01' THEN revenue ELSE 0 END) AS mar_revenue
FROM orders
GROUP BY store| store | feb_revenue | mar_revenue |
|---|---|---|
| Abuja | 35 | 130 |
| Accra | 285 | 70 |
| Lagos | 94 | 205 |
Step by step
- Picture: Lagos 94 → 205.
SELECT store, SUM(CASE WHEN order_date < '2026-03-01' THEN revenue ELSE 0 END) AS feb_revenue, SUM(CASE WHEN order_date >= '2026-03-01' THEN revenue ELSE 0 END) AS mar_revenue FROM orders GROUP BY store - No join.
SELECT store, SUM(CASE WHEN order_date < '2026-03-01' THEN revenue ELSE 0 END) AS feb_revenue, SUM(CASE WHEN order_date >= '2026-03-01' THEN revenue ELSE 0 END) AS mar_revenue FROM orders GROUP BY store - SUM(CASE WHEN order_date >= '2026-03-01' THEN revenue ELSE 0 END) for March.
SELECT store, SUM(CASE WHEN order_date < '2026-03-01' THEN revenue ELSE 0 END) AS feb_revenue, SUM(CASE WHEN order_date >= '2026-03-01' THEN revenue ELSE 0 END) AS mar_revenue FROM orders GROUP BY store - Both SUMs and the subtraction go in one SELECT.
SELECT store, SUM(CASE WHEN order_date < '2026-03-01' THEN revenue ELSE 0 END) AS feb_revenue, SUM(CASE WHEN order_date >= '2026-03-01' THEN revenue ELSE 0 END) AS mar_revenue FROM orders GROUP BY store
Practice
1. Show each store's February and March revenue side by side. Name them feb_revenue and mar_revenue.
SELECT store, SUM(CASE WHEN order_date < '2026-03-01' THEN revenue ELSE 0 END) AS feb_revenue, SUM(CASE WHEN order_date >= '2026-03-01' THEN revenue ELSE 0 END) AS mar_revenue FROM orders GROUP BY store2. How did each store do in March compared with February? Show each store and the change in revenue: March minus February.
SELECT store, SUM(CASE WHEN order_date >= '2026-03-01' THEN revenue ELSE 0 END) - SUM(CASE WHEN order_date < '2026-03-01' THEN revenue ELSE 0 END) AS change FROM orders GROUP BY store3. How did each store's number of orders change from February to March? Show store and change: March minus February.
SELECT store, SUM(CASE WHEN order_date >= '2026-03-01' THEN 1 ELSE 0 END) - SUM(CASE WHEN order_date < '2026-03-01' THEN 1 ELSE 0 END) AS change FROM orders GROUP BY store4. How did each product do in March compared with February? Show product and change in revenue: March minus February.
SELECT product, SUM(CASE WHEN order_date >= '2026-03-01' THEN revenue ELSE 0 END) - SUM(CASE WHEN order_date < '2026-03-01' THEN revenue ELSE 0 END) AS change FROM orders GROUP BY product5. Show each store's coupon revenue in February and in March side by side. Name them feb_coupon and mar_coupon.
SELECT store, SUM(CASE WHEN order_date < '2026-03-01' AND coupon IS NOT NULL THEN revenue ELSE 0 END) AS feb_coupon, SUM(CASE WHEN order_date >= '2026-03-01' AND coupon IS NOT NULL THEN revenue ELSE 0 END) AS mar_coupon FROM orders GROUP BY storeLearn it by doing. This lesson is a short hands-on level on Bampaa: see it work, then build and write it yourself, with instant feedback.
Try this lesson free →