Сумма проигранных сделок по источникам за последние 12 месяцев
SQL, по которому посчитано
WITH period AS (
SELECT CAST(date_trunc('month', max(date)) - INTERVAL '11 months' AS DATE) AS start_date
FROM deals
)
SELECT
source,
round(sum(amount), 2) AS lost_amount,
count(*) AS lost_deals,
round(avg(amount), 2) AS avg_lost_amount,
round(sum(amount) / sum(sum(amount)) OVER (), 4) AS lost_share
FROM deals
WHERE status = 'Проиграна'
AND date >= (SELECT start_date FROM period)
GROUP BY source
ORDER BY lost_amount DESC