SQL Quest › SQL Interview Questions › Window Functions
Each Merchant's Share of Its Category
Percent-of-parent. Challenge 276 asked for each category's share of the WHOLE ledger and a scalar subquery supplied the denominator. This asks for each merchant's share of ITS OWN CATEGORY, and the denominator is now different on every row — one grand total will not do.
SUM(x) OVER (PARTITION BY category) is the tool: it computes the category's total and keeps the merchant row, instead of collapsing it the way a GROUP BY would. Aggregate to one row per merchant in a CTE first, then window over that.
Return category, name, merchant_spend (rounded to 2 decimals), category_spend (the partition total, rounded to 2 decimals) and pct_of_category (100.0 × merchant ÷ category, rounded to 2 decimals). All 25 merchants. Order by category ascending, then pct_of_category descending, then name ascending.
Round at the end, not inside the window — rounding the inputs and then dividing gives a slightly different number.
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 |
merchants
| merchant_id | name | category | country | risk_tier |
|---|---|---|---|---|
| 1 | BigBox Mart | Grocery | TR | high |
| 2 | Quick Stop | Electronics | JP | high |
| 3 | Aurora Cafe | Travel | TR | high |
Expected output: Clothing Flux Online 19515.31 68549.73 28.47; Clothing Vespa Apparel 13206.35 68549.73 19.27; ...
Hint
SELECT, Window Functions, PARTITION BY, and open the hint there if you stall.Concepts
SELECT Window Functions PARTITION BY CTE JOIN ROUND Window Functions + CTE
Practise the topic: SQL practice questions · Window function practice · CTE practice · JOIN practice
In these company practice sets
Capital One · Stripe · Goldman Sachs
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