Артикулы с нулевым остатком и в наличии по категориям
SQL, по которому посчитано
WITH last_snapshot AS (
SELECT sku, category, units
FROM stock
WHERE date = (SELECT max(date) FROM stock)
)
SELECT
category,
count(*) FILTER (WHERE units = 0) AS zero_sku,
count(*) FILTER (WHERE units > 0) AS in_stock_sku
FROM last_snapshot
GROUP BY category
ORDER BY zero_sku DESC, category