Выручка по каналам и месяцам, рубли
SQL, по которому посчитано
WITH monthly AS (
SELECT
date_trunc('month', s.date) AS sales_month,
s.channel,
SUM(s.revenue) AS revenue,
SUM(s.returned_revenue) AS returned_revenue
FROM sales s
WHERE s.date >= (SELECT date_trunc('month', max(date)) FROM sales) - INTERVAL '11 months'
GROUP BY 1, 2
)
SELECT
strftime(sales_month, '%Y-%m') AS month,
ROUND(SUM(CASE WHEN channel = 'Сайт' THEN revenue - returned_revenue ELSE 0 END), 0) AS site_revenue,
ROUND(SUM(CASE WHEN channel = 'Wildberries' THEN revenue - returned_revenue ELSE 0 END), 0) AS wb_revenue,
ROUND(SUM(CASE WHEN channel = 'Ozon' THEN revenue - returned_revenue ELSE 0 END), 0) AS ozon_revenue,
ROUND(SUM(CASE WHEN channel = 'Яндекс Маркет' THEN revenue - returned_revenue ELSE 0 END), 0) AS yandex_market_revenue
FROM monthly
GROUP BY sales_month
ORDER BY sales_month