SQL Practice Logo

SQLPractice Online

Level 4 - Mid-LevelOptimization Questions

Optimization: Top-N Per Group Strategy

Choose the better query for top 1 order per customer on large table. Query A: SELECT DISTINCT customer_id, FIRST_VALUE(id) OVER (PARTITION BY customer_id ORDER BY order_date DESC) AS latest_order_id FROM orders; Query B: SELECT customer_id, id AS latest_order_id FROM (SELECT id, customer_id, ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY order_date DESC, id DESC) AS rn FROM orders) t WHERE rn = 1;