Оборачиваемость запаса по категориям
SQL, по которому посчитано
WITH stock_avg AS (
SELECT category, avg(units) AS units
FROM (SELECT category, date, sum(units) AS units FROM stock WHERE date > (SELECT max(date) FROM stock) - INTERVAL 12 MONTH GROUP BY ALL)
GROUP BY category
),
sold AS (
SELECT category, sum(units) AS units
FROM sales
WHERE date > (SELECT max(date) FROM sales) - INTERVAL 12 MONTH
GROUP BY category
)
SELECT category, round(stock_avg.units / sold.units * 365) AS days
FROM stock_avg
JOIN sold USING (category)
ORDER BY days DESC