WITH first_product_cte AS (
SELECT
products.Name,
products.Size,
CAST(products.Launch AS DATE) AS launch_date,
orders.id AS order_id,
orders.customerId,
orders.total,
ROW_NUMBER() OVER (PARTITION BY products.Name, products.Size ORDER BY CAST(products.Launch AS DATE)) AS rn
FROM
orders
JOIN order_items ON orders.id = order_items.orderID
JOIN products ON order_items.SKU = products.SKU
)
SELECT
Name,
Size,
launch_date,
COUNT(DISTINCT order_id) AS order_count,
SUM(total) AS total_revenue,
COUNT(DISTINCT customerId) AS customer_count
FROM
first_product_cte
WHERE
rn = 1
GROUP BY
Name,
Size,
launch_date;