-- Template: Customer Order Aggregation -- Pattern: Aggregate metrics by customer dimension -- Use Case: Calculate total order value, count, average per customer SELECT c.customer_id, c.name, c.email, COUNT(o.order_id) as total_orders, SUM(o.total_amount) as total_spent, AVG(o.total_amount) as avg_order_value, MIN(o.order_date) as first_order_date, MAX(o.order_date) as last_order_date FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id GROUP BY c.customer_id, c.name, c.email ORDER BY total_spent DESC; -- Key Concepts: -- - LEFT JOIN to include customers with no orders -- - Multiple aggregations (COUNT, SUM, AVG, MIN, MAX) -- - GROUP BY all non-aggregated columns -- - ORDER BY to rank results