SQL Quest › SQL Interview Questions › Joins
FX Fee Take Rate by Currency
FX is where a multi-currency neobank earns its margin, and a take rate is read in basis points. Exchanges are transactions with type = 'fx_exchange'; the currency column holds the currency bought, and currencies names it. Use completed exchanges only.
Return code, name, exchanges (row count), volume_gbp (SUM of amount_gbp), fees_gbp (SUM of fee_gbp) — both rounded to 2 decimals — and fee_bps (10000.0 * fees / volume, rounded to 1 decimal). One row per currency. Order by fees_gbp descending.
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 | user_id | ts | type | amount | currency | amount_gbp | fee_gbp | merchant_category | merchant_country | counterparty_user_id | status | decline_reason |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 2025-06-14 11:01:51 | fx_exchange | 32271.15 | JPY | 167.81 | 1.68 | NULL | NULL | NULL | completed | NULL |
| 2 | 1 | 2025-06-14 11:17:45 | bill_payment | 59.53 | EUR | 50.6 | 0 | utilities | IE | NULL | completed | NULL |
| 3 | 7 | 2025-06-16 10:06:38 | card_payment | 122.27 | EUR | 103.93 | 0 | shopping | ES | NULL | completed | NULL |
currencies
| code | name | rate_to_gbp |
|---|---|---|
| GBP | Pound sterling | 1 |
| EUR | Euro | 0.85 |
| USD | US dollar | 0.78 |
Expected output: code=PLN, name=Polish złoty, exchanges=17, volume_gbp=6482.97, fees_gbp=22.42, fee_bps=34.6 ...
Hint
Concepts
SELECT JOIN GROUP BY SUM COUNT JOIN + Aggregation
Practise the topic: SQL practice questions · JOIN practice · GROUP BY exercises · Advanced SQL interview questions
In these company practice sets
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