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.