ABC-анализ товаров по выручке
| Группа | Товар | Выручка | Накопленная доля |
|---|---|---|---|
| A | Диван-кровать Берген | 42 255 871 ₽ | 12,2 % |
| A | Диван угловой Осло | 38 719 882 ₽ | 23,4 % |
| A | Диван прямой Турку | 28 515 301 ₽ | 31,7 % |
| A | Кровать Лунд 160 | 26 497 869 ₽ | 39,3 % |
| A | Кухонный гарнитур Ханко | 24 742 905 ₽ | 46,5 % |
| A | Шкаф-купе Бергамо | 20 333 976 ₽ | 52,4 % |
| A | Кровать детская Уме | 20 177 351 ₽ | 58,2 % |
| A | Кровать Кальмар 180 | 19 721 590 ₽ | 63,9 % |
| A | Обеденная группа Вааса | 19 596 511 ₽ | 69,6 % |
| A | Комод Кеми | 19 114 363 ₽ | 75,1 % |
| B | Стул Порво | 18 950 373 ₽ | 80,6 % |
| B | Люстра Сало | 17 075 257 ₽ | 85,6 % |
| B | Стеллаж Оулу | 16 297 960 ₽ | 90,3 % |
| B | Торшер Раума | 14 319 596 ₽ | 94,4 % |
| C | Бра Иматра | 11 337 180 ₽ | 97,7 % |
| C | Пуф Савонлинна | 4 357 779 ₽ | 99 % |
| C | Светильник Лахти | 3 641 187 ₽ | 100 % |
SQL, по которому посчитано
WITH items AS (
SELECT product, sum(revenue - returned_revenue) AS revenue
FROM sales
WHERE date > (SELECT max(date) FROM sales) - INTERVAL 12 MONTH
GROUP BY product
),
ranked AS (
SELECT product, revenue,
sum(revenue) OVER (ORDER BY revenue DESC ROWS UNBOUNDED PRECEDING) / sum(revenue) OVER () AS cumulative
FROM items
)
SELECT product, round(revenue) AS revenue, round(cumulative, 4) AS cumulative,
CASE WHEN cumulative <= 0.8 THEN 'A' WHEN cumulative <= 0.95 THEN 'B' ELSE 'C' END AS grade
FROM ranked
ORDER BY revenue DESC