Средняя сумма сделки по месяцам за последние 12 месяцев
SQL, по которому посчитано
WITH bounds AS (
SELECT date_trunc('month', max(date)) - INTERVAL '11 months' AS start_month,
max(date) AS last_date
FROM deals
),
monthly AS (
SELECT date_trunc('month', date) AS month,
count(*) AS deals_count,
avg(amount) AS avg_deal_amount,
sum(amount) AS total_amount
FROM deals
WHERE status = 'Выиграна'
AND date >= (SELECT start_month FROM bounds)
AND date <= (SELECT last_date FROM bounds)
GROUP BY 1
)
SELECT month,
round(avg_deal_amount, 2) AS avg_deal_amount,
deals_count,
round(total_amount, 2) AS total_amount
FROM monthly
ORDER BY month