Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak obliczyć średnią kroczącą w MySQL

Wiele razy może być konieczne obliczenie średniej ruchomej w MySQL, znanej również jako prosta średnia ruchoma. Np. średnia sprzedaż za ostatnie 5 dni . W MySQL nie ma funkcji obliczania średniej ruchomej. Zobaczmy więc, jak obliczyć średnią ruchomą w MySQL za pomocą zapytania SQL.

Jak obliczyć średnią kroczącą w MySQL

Oto kroki, aby obliczyć średnią ruchomą w MySQL. Załóżmy, że masz poniższą tabelę zawierającą dzienne dane sprzedaży

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 |
+------------+------+

Przeczytaj bonus: Jak obliczyć średnią dzienną sprzedaż w MySQL

Załóżmy, że chcesz obliczyć średnią ruchomą sprzedaży z ostatnich 5 dni. Oto jak możesz to zrobić za pomocą zapytania SQL w 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 |
+------------+------+---------------+

W powyższym zapytaniu wykonujemy samodzielne łączenie naszej tabeli sprzedaży ze sobą i dla każdej wartości data_zamówienia wyliczamy średnią na podstawie danych sprzedażowych za jej poprzednie 5 dni. W naszym zapytaniu SQL wewnętrzne zapytanie wykonuje średnią kalkulację na podstawie danych sprzedaży zebranych dla każdego okna czasowego a.order_date (poprzedzające 5 dni) przy użyciu funkcji datediff.

Przeczytaj dodatkowe: Jak obliczyć średnią kroczącą w przesunięciu ku czerwieni

Jeśli chcesz zmienić okno czasowe, po prostu zmień część pogrubioną (POMIĘDZY 0 a 4) w powyższym zapytaniu.

Możesz również dodać więcej filtrów, aktualizując klauzulę WHERE w zagnieżdżonym zapytaniu.

Możesz dostosować powyższe zapytanie, aby obliczyć średnią ruchomą w MySQL, zgodnie ze swoimi wymaganiami.

Możesz także użyć narzędzia do tworzenia wykresów, aby wykreślić średnią ruchomą na wykresie liniowym lub pulpicie nawigacyjnym. Oto przykład wykresu liniowego utworzonego za pomocą Ubiq.

Jeśli chcesz tworzyć wykresy, dashboardy i raporty z bazy danych MySQL, możesz wypróbować Ubiq. Oferujemy 14-dniowy bezpłatny okres próbny.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować MySQL w systemie Windows

  2. Czy można użyć zmiennej zdefiniowanej przez użytkownika MySql w .NET MySqlCommand?

  3. Jak mogę połączyć się z MySQL w Pythonie 3 w systemie Windows?

  4. Jak sprawdzić, czy MySQLnd jest aktywnym sterownikiem?

  5. KOLUMNA UPUSZCZANIA MySQL