Доля выручки с рекламы по источникам за последний месяц
SQL, по которому посчитано
WITH bounds AS (
SELECT date_trunc('month', max(date))::DATE AS month_start
FROM ads
),
agg AS (
SELECT
source,
SUM(revenue) AS revenue,
SUM(cost) AS cost
FROM ads, bounds
WHERE date >= bounds.month_start
AND date < (bounds.month_start + INTERVAL '1 month')::DATE
GROUP BY source
)
SELECT
source,
round(revenue, 2) AS revenue,
round(cost, 2) AS cost,
round(revenue / NULLIF(SUM(revenue) OVER (), 0), 4) AS revenue_share
FROM agg
ORDER BY revenue DESC
LIMIT 30