Средний остаток в штуках по категориям за 12 месяцев
SQL, по которому посчитано
WITH monthly AS (
SELECT
date,
category,
SUM(units) AS units
FROM stock
WHERE date >= (
SELECT date_trunc('month', max(date)) - INTERVAL '11 months'
FROM stock
)
GROUP BY date, category
)
SELECT
category,
round(avg(units), 1) AS avg_units
FROM monthly
GROUP BY category
ORDER BY avg_units DESC