SQL QuestSQL Interview Questions › Subqueries & CTEs

Top 3 Spending Categories per Country

HardProQuerying BasicsSubqueries & CTEsWindow FunctionsJoinsAggregation & Grouping

Top-N per group — the window pattern that separates a ranked list from a ranked list per segment. For completed card payments, sum amount_gbp per customer country (from users) and merchant_category, then rank categories within each country by spend and keep the top three.

Return country, merchant_category, spend_gbp (rounded to 2 decimals) and rn (1 to 3). Order by country ascending, then rn 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_iduser_idtstypeamountcurrencyamount_gbpfee_gbpmerchant_categorymerchant_countrycounterparty_user_idstatusdecline_reason
112025-06-14 11:01:51fx_exchange32271.15JPY167.811.68NULLNULLNULLcompletedNULL
212025-06-14 11:17:45bill_payment59.53EUR50.60utilitiesIENULLcompletedNULL
372025-06-16 10:06:38card_payment122.27EUR103.930shoppingESNULLcompletedNULL

users

user_idsignup_datecountryhome_currencyplanplan_sincekyc_verified_atreferred_bybirth_year
12025-06-01IEEURstandard2025-06-012025-06-03 16:00:00NULL1972
22025-06-02FREURstandard2025-06-022025-06-04 16:00:00NULL1979
32025-06-03GBGBPstandard2025-06-032025-06-08 04:00:00NULL1977

Expected output: country=CH, merchant_category=travel, spend_gbp=1078.84, rn=1 ...

Hint

This is a Pro challenge — the hint, the step-by-step tutor and the reference solution open in the app.

Concepts

SELECT CTE Window Functions ROW_NUMBER JOIN GROUP BY

Practise the topic: SQL practice questions · CTE practice · Window function practice · JOIN practice · GROUP BY exercises · Ranking function practice · Advanced SQL interview questions

In these company practice sets

Revolut

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

Related questions

Cumulative Distinct Customers Over TimeHard · FreeRunning Total RevenueHard · FreeYear-over-Year GrowthHard · Free7-Day Rolling Revenue AverageHard · FreeMulti-CTE Revenue PipelineHard · FreeWealthy Survivor ProfileHard · 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