SQL Quest › SQL Interview Questions › Joins
Velocity Rule — 5+ Transactions in 5 Minutes
Velocity = the most reliable fraud signal. A legitimate user makes ~5 transactions per day. A compromised card hits 10+ transactions in 5 minutes as the fraudster tests stolen credentials. Find every transaction where the same account had 5 or more transactions in the 5 minutes leading up to it (inclusive of the current row).
Show account_id, txn_id, txn_at, amount, txns_last_5_min. Order by account_id, txn_at.
SQLite doesn't support RANGE BETWEEN INTERVAL in window functions — use a self-join + GROUP BY instead. The trick: count rows where t2.txn_at is within (t1.txn_at - 5 min) and t1.txn_at.
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 |
Expected output: Velocity-burst transactions
Hint
Concepts
SELECT JOIN GROUP BY Date Functions Self-Join
Practise the topic: SQL practice questions · JOIN practice · GROUP BY exercises · Date function practice · Advanced SQL interview questions
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