SQL Quest › SQL Interview Questions › Window Functions

Running Total of Daily Card Spend

MediumFreeQuerying BasicsWindow FunctionsSubqueries & CTEsDate FunctionsAggregation & Grouping

Cumulative spend, the shape every finance deck opens with. The trap is the grain. A SUM(amount) OVER (ORDER BY txn_at) straight off the transactions table gives you a running total after every single swipe — 2,165 rows, one per transaction, and nobody asked for that. Aggregate to one row per day first, in a CTE, then run the window over the daily series.

Return day (date(txn_at)), daily_spend (that day's SUM of amount, rounded to 2 decimals) and running_total (every day up to and including this one, rounded to 2 decimals). 61 rows — the ledger runs 2026-03-04 to 2026-05-03. Order by day ascending.

The frame is ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW. That is also the default when you write OVER (ORDER BY day) with no frame, but write it out: the default for a window with an ORDER BY is RANGE, not ROWS, and on a column with duplicates the two disagree.

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". Free accounts get 10 free challenge solves, and this can be one of them.

Schema

transactions

txn_idaccount_idamounttxn_atmerchant_idlatlngstatus
1149151.842026-03-04T12:39:39.078Z2440.342-74.4092completed
22110.722026-03-04T13:04:50.641Z752.936613.3229completed
335158.782026-03-04T13:27:15.528Z2552.739713.3134completed

Expected output: 2026-03-04 2011.18 2011.18; 2026-03-05 4036.08 6047.26; 2026-03-06 5521.4 11568.66; ...

Hint

The hint for this one spells out most of the query, so it stays in the editor. Reach for SELECT, Window Functions, Frame Clause, and open the hint there if you stall.

Concepts

SELECT Window Functions Frame Clause CTE Date Functions SUM Window Functions + CTE

Practise the topic: SQL practice questions · Window function practice · CTE practice · Date function practice · GROUP BY exercises

Read the concept: Window functions tutorial

The trap to watch for: BETWEEN on timestamps

In these company practice sets

Capital One · Stripe · Goldman Sachs · Bloomberg

A SQL Quest challenge matched to patterns reported for these companies — not a question any of them has published.

Preparing for Capital One? How the CodeSignal data analyst assessment works.

Related questions

Top 3 Merchants Per Category by SpendMedium · FreeBusiest Merchants, and What a Tie Does to the RankMedium · FreeEach Merchant's Share of Its CategoryMedium · FreeSalary Percentile RankingHard · ProFirst and Last Order per CustomerHard · ProCumulative Revenue Share (Pareto)Hard · Pro

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