SQL Quest › SQL Interview Questions › Aggregation & Grouping
Monthly Spend Per Account
The first question on every card-analytics screen: how much does each cardholder spend per month? The ledger stores one row per transaction with an ISO timestamp in txn_at. Bucket it by calendar month with strftime('%Y-%m', txn_at) and sum the amounts.
Return account_id, month (formatted YYYY-MM), and monthly_spend (SUM of amount, rounded to 2 decimals). One row per account per month. Order by account_id ascending, then 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 | account_id | amount | txn_at | merchant_id | lat | lng | status |
|---|---|---|---|---|---|---|---|
| 1 | 149 | 151.84 | 2026-03-04T12:39:39.078Z | 24 | 40.342 | -74.4092 | completed |
| 2 | 21 | 10.72 | 2026-03-04T13:04:50.641Z | 7 | 52.9366 | 13.3229 | completed |
| 3 | 35 | 158.78 | 2026-03-04T13:27:15.528Z | 25 | 52.7397 | 13.3134 | completed |
Expected output: account_id=1, month=2026-03, monthly_spend=501.57 ...
Hint
Concepts
SELECT GROUP BY SUM strftime GROUP BY + Date Functions
Practise the topic: SQL practice questions · GROUP BY exercises
In these company practice sets
Capital One · Ramp · Revolut · Wise · Goldman Sachs · Bloomberg
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