SQL Quest › SQL Interview Questions › Subqueries & CTEs
Month-over-Month Volume Growth
Growth is a window question: this month against the month before. Sum the amount_gbp of completed transactions per month (strftime('%Y-%m', ts)), then use LAG to bring the previous month alongside.
Return month, volume_gbp (rounded to 2 decimals), prev_volume_gbp and growth_pct (100.0 * (volume - previous) / previous, rounded to 1 decimal). The first month has no previous month: its prev_volume_gbp and growth_pct are NULL, not 0. Order by month ascending.
Solve it in the browser editor →
Runs on SQLite in your browser, graded against the expected result, no signup. A wrong answer gets a diagnosis, not just "incorrect".
Schema
transactions
| txn_id | user_id | ts | type | amount | currency | amount_gbp | fee_gbp | merchant_category | merchant_country | counterparty_user_id | status | decline_reason |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 2025-06-14 11:01:51 | fx_exchange | 32271.15 | JPY | 167.81 | 1.68 | NULL | NULL | NULL | completed | NULL |
| 2 | 1 | 2025-06-14 11:17:45 | bill_payment | 59.53 | EUR | 50.6 | 0 | utilities | IE | NULL | completed | NULL |
| 3 | 7 | 2025-06-16 10:06:38 | card_payment | 122.27 | EUR | 103.93 | 0 | shopping | ES | NULL | completed | NULL |
Expected output: month=2025-06, volume_gbp=3745.51, prev_volume_gbp=NULL, growth_pct=NULL; month=2025-07, ... growth_pct=18.6 ...
Hint
Concepts
SELECT CTE Window Functions LAG strftime NULL Handling
Practise the topic: SQL practice questions · CTE practice · Window function practice · NULL handling practice · Advanced SQL interview questions
In these company practice sets
A SQL Quest challenge matched to patterns reported for these companies — not a question any of them has published.
Related questions
Where would this cost you points in an interview?
Ten questions, no signup: a Skillmap across nine SQL skills and the one to fix first.
Take the readiness test