У меня есть запрос, который возвращает общую стоимость продаж, сгруппированных по месяцам.Я хотел бы добавить столбец, который возвращает рост / уменьшение в процентах по сравнению с предыдущими строками.
Я уже пытался использовать CREATE TEMPORARY TABLE
, создавая переменную @var :=
, но на самом деле ничего не работает.В идеале мой результат должен быть:
Month | Sales | Perc
1 | 100 | 0
2 | 150 | 50
3 | 100 | -33.33
Расчет, который нужно сделать: ((actual_value - previous_value) / previous_value) *100
О таблицах, с которыми я работаю sales
, products
, sales_items
,поэтому мой запрос для получения общего объема продаж, сгруппированных по месяцам:
SELECT
MONTH(s.sale_date) AS Month,
SUM(p.retail_price * si.quantity) AS Sales_Amount
FROM sales s
INNER JOIN sales_items si ON s.sale_id = si.sale_id
INNER JOIN products p ON si.product_id = p.product_id
WHERE YEAR(s.sale_date) = '2018'
GROUP BY month
ORDER BY month;
Поскольку я использую SUM
, чтобы суммировать позиции продаж и объединять их в каждый sale_id
, а послеГруппируя по месяцам, кажется сложным использовать это значение в новом столбце, поэтому было бы здорово, если бы кто-то имел представление, как это сделать.