Много пъти може да се наложи да изчислите плъзгащата се средна в MySQL, известна още като Simple Moving Average. Напр. средни продажби за последните 5 дни . В MySQL няма функция за изчисляване на пълзяща средна. Така че нека видим как да изчислим пълзящата средна стойност в MySQL с помощта на SQL заявка.
Как да изчислим пълзящата средна в MySQL
Ето стъпките за изчисляване на пълзящата средна стойност в MySQL. Да приемем, че имате следната таблица, която съдържа данни за ежедневните продажби
mysql> create table sales(order_date date,sale int); mysql> insert into sales values('2020-01-01',20), ('2020-01-02',25),('2020-01-03',15),('2020-01-04',30), ('2020-01-05',20),('2020-01-10',20),('2020-01-06',25), ('2020-01-07',15),('2020-01-08',30),('2020-01-09',20); mysql> select * from sales; +------------+------+ | order_date | sale | +------------+------+ | 2020-01-01 | 20 | | 2020-01-02 | 25 | | 2020-01-03 | 15 | | 2020-01-04 | 30 | | 2020-01-05 | 20 | | 2020-01-10 | 20 | | 2020-01-06 | 25 | | 2020-01-07 | 15 | | 2020-01-08 | 30 | | 2020-01-09 | 20 | +------------+------+
Бонус за четене: Как да изчислим средните продажби на ден в MySQL
Да приемем, че искате да изчислите продажбите на пълзящата средна стойност за последните 5 дни. Ето как можете да го направите, като използвате SQL заявка в MySQL.
mysql> SELECT a.order_date, a.sale, Round( ( SELECT SUM(b.sale) / COUNT(b.sale) FROM sales AS b WHERE DATEDIFF(a.order_date, b.order_date) BETWEEN 0 AND 4 ), 2 ) AS '5dayMovingAvg' FROM sales AS a ORDER BY a.order_date; +------------+------+---------------+ | order_date | sale | 5dayMovingAvg | +------------+------+---------------+ | 2020-01-01 | 20 | 20.00 | | 2020-01-02 | 25 | 22.50 | | 2020-01-03 | 15 | 20.00 | | 2020-01-04 | 30 | 22.50 | | 2020-01-05 | 20 | 22.00 | | 2020-01-06 | 25 | 23.00 | | 2020-01-07 | 15 | 21.00 | | 2020-01-08 | 30 | 24.00 | | 2020-01-09 | 20 | 22.00 | | 2020-01-10 | 20 | 22.00 | +------------+------+---------------+
В горната заявка ние правим самостоятелно свързване на нашата таблица за продажби със себе си и за всяка стойност на order_date изчисляваме средната стойност въз основа на данни за продажбите за предходните 5 дни. В нашата SQL заявка вътрешната заявка прави средното изчисление въз основа на данните за продажбите, събрани за всеки времеви прозорец на a.order_date (предхождащи 5 дни), използвайки функцията datediff.
Бонус четене: Как да се изчисли пълзящата средна в червено отместване
Ако искате да промените времевия си прозорец, просто променете частта в удебелен (МЕЖДУ 0 и 4) в горната заявка.
Можете също да добавите още филтри, като актуализирате клаузата WHERE във вложената заявка.
Можете да персонализирате горната заявка, за да изчислите плъзгащата се средна стойност в MySQL, според вашите изисквания.
Можете също да използвате инструмент за диаграми, за да начертаете плъзгаща се средна на линейна диаграма или табло. Ето пример за линейна диаграма, създадена с Ubiq.
Ако искате да създавате диаграми, табла за управление и отчети от MySQL база данни, можете да опитате Ubiq. Предлагаме 14-дневен безплатен пробен период.