BBampaa

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 →
About 5–10 minutes · no sign-up needed

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

Result:

storefeb_revenuemar_revenue
Abuja35130
Accra28570
Lagos94205

Step by step

  1. 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
  2. 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
  3. 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
  4. 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

Try each one in your head first, then open the answer.

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 store
2. 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 store
3. 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 store
4. 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 product
5. 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 store

Learn 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 →
About 5–10 minutes · no sign-up needed