WITH customer_variations AS (
SELECT
orders.customerId,
COUNT(DISTINCT id) AS num_orders,
COUNT(DISTINCT SKU) AS num_unique_skus
FROM orders
JOIN order_items
ON orders.id = order_items.orderID
GROUP BY 1
)
SELECT
MAX(num_orders) AS max_orders,
MIN(num_orders) AS min_orders,
AVG(num_orders) AS avg_orders,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY num_orders) AS median_orders,
MAX(num_unique_skus) AS max_unique_skus,
MIN(num_unique_skus) AS min_unique_skus,
AVG(num_unique_skus) AS avg_unique_skus,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY num_unique_skus) AS median_unique_skus
FROM customer_variations;