Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Menghitung Moving Average di MySQL

Sering kali Anda mungkin perlu menghitung rata-rata pergerakan di MySQL, juga dikenal sebagai Rata-Rata Pergerakan Sederhana. Misalnya, penjualan rata-rata selama 5 hari past . Di MySQL, tidak ada fungsi untuk menghitung rata-rata bergerak. Jadi mari kita lihat bagaimana menghitung rata-rata bergerak di MySQL menggunakan query SQL.

Cara Menghitung Rata-Rata Pergerakan di MySQL

Berikut langkah-langkah menghitung moving average di MySQL. Katakanlah Anda memiliki tabel berikut yang berisi data penjualan harian

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

Bonus Baca : Cara Menghitung Rata-Rata Penjualan Per Hari di MySQL

Katakanlah Anda ingin menghitung penjualan rata-rata bergerak selama 5 hari terakhir. Inilah cara Anda melakukannya menggunakan kueri SQL di 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 |
+------------+------+---------------+

Dalam kueri di atas, kami melakukan penggabungan sendiri tabel penjualan kami dengan dirinya sendiri, dan untuk setiap nilai tanggal_pesanan, kami menghitung rata-rata berdasarkan data penjualan selama 5 hari sebelumnya. Dalam kueri SQL kami, kueri dalam melakukan penghitungan rata-rata, berdasarkan data penjualan yang dikumpulkan untuk setiap jendela waktu a.order_date (sebelum 5 hari) menggunakan fungsi dateiff.

Bonus Baca : Cara Menghitung Moving Average di Redshift

Jika Anda ingin mengubah jendela waktu Anda, cukup ubah bagian yang tebal (ANTARA 0 dan 4) dalam kueri di atas.

Anda juga dapat menambahkan lebih banyak filter dengan memperbarui klausa WHERE dalam kueri bertingkat.

Anda dapat menyesuaikan kueri di atas untuk menghitung rata-rata bergerak di MySQL, sesuai kebutuhan Anda.

Anda juga dapat menggunakan alat bagan untuk memplot rata-rata bergerak pada bagan garis atau dasbor. Berikut adalah contoh diagram garis yang dibuat menggunakan Ubiq.

Jika Anda ingin membuat grafik, dasbor &laporan dari database MySQL, Anda dapat mencoba Ubiq. Kami menawarkan uji coba gratis selama 14 hari.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menyisipkan Beberapa Baris dalam Satu SQL Query – Pertanyaan Wawancara Minggu Ini #069

  2. Hapus Kunci Utama di MySQL

  3. Kutipan tunggal, Kutipan ganda, dan Backtick di MySQL

  4. Instal MySQL Workbench untuk Administrasi Database

  5. Bagaimana saya bisa mencegah injeksi SQL di PHP?