Optimization: Pre-Aggregate Before Join
Choose the better query for monthly department revenue report, then provide final SQL. Query A: SELECT d.id, d.name, SUM(oi.quantity * oi.unit_price) AS revenue FROM departments d JOIN employees e ON d.id = e.department_id JOIN orders o ON e.id = o.employee_id JOIN order_items oi ON o.id = oi.order_id WHERE o.order_date >= '2026-01-01' AND o.order_date < '2026-02-01' GROUP BY d.id, d.name; Query B: SELECT d.id, d.name, SUM(x.revenue) AS revenue FROM departments d JOIN employees e ON d.id = e.department_id JOIN (SELECT o.employee_id, SUM(oi.quantity * oi.unit_price) AS revenue FROM orders o JOIN order_items oi ON o.id = oi.order_id WHERE o.order_date >= '2026-01-01' AND o.order_date < '2026-02-01' GROUP BY o.employee_id) x ON e.id = x.employee_id GROUP BY d.id, d.name;