Средняя розничная цена по артикулам за 12 месяцев, рубли
SQL, по которому посчитано
WITH period_sales AS (
SELECT
sku,
product,
channel,
sum(revenue) - sum(returned_revenue) AS net_revenue,
sum(units) - sum(returned_units) AS net_units
FROM sales
WHERE date > (SELECT max(date) FROM sales) - INTERVAL 12 MONTH
GROUP BY sku, product, channel
HAVING sum(units) - sum(returned_units) > 0
), prices AS (
SELECT
sku,
max(product) AS product,
round(sum(CASE WHEN channel = 'Сайт' THEN net_revenue END) / nullif(sum(CASE WHEN channel = 'Сайт' THEN net_units END), 0), 0) AS site_price,
round(sum(CASE WHEN channel = 'Wildberries' THEN net_revenue END) / nullif(sum(CASE WHEN channel = 'Wildberries' THEN net_units END), 0), 0) AS wb_price,
round(sum(CASE WHEN channel = 'Ozon' THEN net_revenue END) / nullif(sum(CASE WHEN channel = 'Ozon' THEN net_units END), 0), 0) AS ozon_price,
round(sum(CASE WHEN channel = 'Яндекс Маркет' THEN net_revenue END) / nullif(sum(CASE WHEN channel = 'Яндекс Маркет' THEN net_units END), 0), 0) AS ym_price,
sum(net_revenue) AS total_revenue
FROM period_sales
GROUP BY sku
)
SELECT sku, product, site_price, wb_price, ozon_price, ym_price
FROM prices
WHERE site_price IS NOT NULL AND (wb_price IS NOT NULL OR ozon_price IS NOT NULL OR ym_price IS NOT NULL)
ORDER BY total_revenue DESC
LIMIT 20