SQL QuestSQL Interview Questions › Joins

Card Spend by Country

EasyFreeQuerying BasicsJoinsAggregation & Grouping

Country is a property of the cardholder, not of the transaction — it lives on accounts, so join before you group. Then the question every screen asks next: how many PEOPLE, and how many SWIPES? Those are two different counts. COUNT(*) counts rows in the joined result, which after a one-to-many join is transactions. COUNT(DISTINCT a.account_id) counts cardholders.

Return country, cardholders (distinct accounts), txn_count (all transactions), total_spend (SUM of amount, rounded to 2 decimals) and txns_per_cardholder (txn_count ÷ cardholders, rounded to 2 decimals). Order by total_spend descending, then country ascending. Write the ratio as 1.0 * COUNT(*) / COUNT(DISTINCT ...) — two integers divide as integers in SQLite and you would get 10, not 10.44.

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

accounts

account_idemailsignup_atcountrydevice_fingerprintip_blockstatus
1user1@example.com2026-02-24T00:00:00.000ZTRdev_13c0cdad41.116.196.153active
2user2@inbox.dev2025-05-13T00:00:00.000ZJPdev_26576d4938.98.201.102active
3user3@inbox.dev2026-04-25T00:00:00.000ZJPdev_42f1a115190.77.45.244flagged

Expected output: TR 45 470 83040.13 10.44; US 47 504 79679.17 10.72; ...

Hint

The hint for this one spells out most of the query, so it stays in the editor. Reach for SELECT, JOIN, GROUP BY, and open the hint there if you stall.

Concepts

SELECT JOIN GROUP BY COUNT DISTINCT Aggregation JOIN + GROUP BY

Practise the topic: SQL practice questions · JOIN practice · GROUP BY exercises

In these company practice sets

Capital One · Wise

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

Related questions

Your First JOINEasy · FreeJOIN with a FilterEasy · FreeLEFT JOIN: Watch the NULLs AppearEasy · FreeCounting Across a JOINEasy · FreeTransaction Share by Merchant CategoryEasy · FreeSignup-Month Cohort SpendEasy · 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