SQL QuestSQL 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".

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

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.

Related questions

Window Functions: ROW_NUMBERMedium · FreeMonth-over-Month Customer GrowthMedium · FreeRANK vs DENSE_RANK Side-by-SideMedium · FreeTop 3 Salary Tiers (DENSE_RANK)Medium · FreeMost Recent Order Per Customer (ROW_NUMBER)Medium · FreeSecond-Highest Earner Per Department (ROW_NUMBER)Medium · Free

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