Выручка на активный артикул по категориям за 12 месяцев
SQL, по которому посчитано
WITH bounds AS (
SELECT CAST(date_trunc('month', max(date)) - INTERVAL '11 months' AS DATE) AS start_dt,
max(date) AS end_dt
FROM sales
),
per_sku AS (
SELECT s.category,
s.sku,
sum(s.revenue) - sum(s.returned_revenue) AS revenue
FROM sales s
CROSS JOIN bounds b
WHERE s.date >= b.start_dt
AND s.date <= b.end_dt
GROUP BY s.category, s.sku
HAVING sum(s.revenue) - sum(s.returned_revenue) > 0
)
SELECT category,
count(*) AS active_skus,
round(sum(revenue), 0) AS revenue,
round(sum(revenue) / count(*), 0) AS revenue_per_sku
FROM per_sku
GROUP BY category
ORDER BY revenue_per_sku DESC