Top 10 Model Accuracies
An easy SQL interview practice problem on DataDriven. Write the query and run it against a real database, with instant feedback.
- Domain
- SQL
- Difficulty
- easy
- Seniority
- L3
- Asked in
- ESPN
Problem
We keep a registry of ML models and want a leaderboard of the ten most accurate, most accurate first, showing each model's name and its accuracy. When two models are equally accurate, the one that was registered first ranks ahead.
Top ten model performance.
Tables
ml_models
Columns: model_id INTEGER, mdl_name TEXT, version TEXT, accuracy REAL, status TEXT, train_at TEXT, framework TEXT
| model_id | mdl_name | version | accuracy | status | train_at | framework |
|---|---|---|---|---|---|---|
| 123 | rec_engine | v1.1 | 0.72 | training | 2026-02-02 01:00:00 | TensorFlow |
| 146 | churn_pred | v2.0 | 0.89 | archived | 2026-03-03 02:00:00 | XGBoost |
| 169 | spam_filter | 3.0 | 0.61 | failed | 2026-04-04 03:00:00 | sklearn |
| 192 | img_classify | v2.1-beta | 0.78 | validating | 2026-05-05 04:00:00 | pytorch |
| 215 | sentiment | 1.0.0 | 0.95 | Deployed | 2026-06-06 05:00:00 | tensorflow |
| 238 | demand_fcst | v1.0 | 0.67 | deployed | NULL | PyTorch |
| 261 | price_opt | v1.1 | 0.84 | Training | 2026-08-08 07:00:00 | TensorFlow |
| 284 | fraud_detect | v2.0 | NULL | archived | 2026-09-09 08:00:00 | XGBoost |
| 307 | rec_engine | 3.0 | 0.73 | failed | 2026-01-10 09:00:00 | sklearn |
| 330 | churn_pred | v2.1-beta | 0.9 | validating | 2026-02-11 10:00:00 | pytorch |
Expected output
| model_id | mdl_name | accuracy |
|---|---|---|
| 951 | sentiment | 0.99 |
| 1986 | churn_pred | 0.99 |
| 10002437 | sentiment | 0.99 |
| 10002482 | churn_pred | 0.99 |
| 767 | sentiment | 0.98 |
Worked solution and explanation
Why this problem exists in real interviews
Ranking ML models by accuracy is a simple top-N pattern that verifies you can order by a numeric metric and apply LIMIT.
Break down the requirements
Step 1: Order by accuracy
Order all rows in ml_models by accuracy descending so the highest-accuracy models come first.
Step 2: Limit to 10
Add model_id ASC as a deterministic tiebreaker so equal-accuracy models have a stable, reproducible order.
The solution
SELECT model_id, mdl_name, accuracy
FROM ml_models
ORDER BY accuracy DESC, model_id ASC
LIMIT 10Common follow-up questions
- What if you needed the top model per framework? (Tests PARTITION BY framework with `ROW_NUMBER`.)
- How would you also include training date and dataset size? (Tests adding columns without changing the ranking.)
- What if models have multiple accuracy scores across test sets? (Tests aggregating accuracy before ranking.)