SQL Practice Logo

SQLPractice Online

Level 5 - SeniorOptimization Questions

Optimization: Pre-Aggregate Before Join

Interviewer prompt: Choose better query for joining customers with total spend. Query A: SELECT c.customer_id, SUM(o.total_amount) FROM customers c JOIN orders o ON c.customer_id = o.customer_id JOIN order_items oi ON o.order_id = oi.order_id GROUP BY c.customer_id; Query B: WITH order_totals AS (SELECT customer_id, SUM(total_amount) AS spend FROM orders GROUP BY customer_id) SELECT c.customer_id, ot.spend FROM customers c LEFT JOIN order_totals ot ON c.customer_id = ot.customer_id;