Доля выигранных сделок по менеджерам за 12 месяцев
SQL, по которому посчитано
WITH d AS (
SELECT
manager,
count(*) AS deals_total,
count(*) FILTER (WHERE status = 'Выиграна') AS deals_won,
sum(amount) FILTER (WHERE status = 'Выиграна') AS won_amount
FROM deals
WHERE date >= (SELECT (date_trunc('month', max(date)) - INTERVAL '11 months')::DATE FROM deals)
GROUP BY manager
)
SELECT
manager,
deals_total,
deals_won,
round(deals_won * 1.0 / nullif(deals_total, 0), 4) AS win_rate,
round(won_amount, 0) AS won_revenue,
round(won_amount / nullif(deals_won, 0), 0) AS avg_won_deal
FROM d
ORDER BY deals_total DESC
LIMIT 30