Доля выигранных сделок по источникам за 12 месяцев
SQL, по которому посчитано
WITH period_deals AS (
SELECT source, status, amount
FROM deals
WHERE "date" > (SELECT max("date") FROM deals) - INTERVAL 12 MONTH
)
SELECT
source,
count(*) AS deals_count,
count(*) FILTER (WHERE status = 'Выиграна') AS won_deals,
round(count(*) FILTER (WHERE status = 'Выиграна')::DOUBLE / count(*), 3) AS conversion_rate,
round(sum(amount) FILTER (WHERE status = 'Выиграна'), 0) AS won_revenue,
round(avg(amount) FILTER (WHERE status = 'Выиграна'), 0) AS avg_won_deal
FROM period_deals
GROUP BY source
ORDER BY conversion_rate DESC, deals_count DESC