Средний чек по источникам сделок
SQL, по которому посчитано
WITH bounds AS (
SELECT
max(date) AS max_date,
date_trunc('month', max(date)) - INTERVAL 11 MONTH AS start_date
FROM deals
)
SELECT
source,
count(*) AS deals_count,
round(sum(amount), 2) AS revenue,
round(sum(amount) / nullif(count(*), 0), 2) AS avg_check
FROM deals
WHERE status = 'Выиграна'
AND date >= (SELECT start_date FROM bounds)
AND date <= (SELECT max_date FROM bounds)
GROUP BY source
ORDER BY avg_check DESC
LIMIT 30