Nhiều khi bạn có thể cần tính toán đường trung bình trong MySQL, còn được gọi là Đường trung bình động đơn giản. Ví dụ: doanh số bán hàng trung bình trong 5 ngày qua . Trong MySQL, không có chức năng nào để tính toán đường trung bình. Vì vậy, hãy xem cách tính toán trung bình động trong MySQL bằng cách sử dụng truy vấn SQL.
Cách tính trung bình động trong MySQL
Dưới đây là các bước để tính toán trung bình động trong MySQL. Giả sử bạn có bảng sau chứa dữ liệu bán hàng hàng ngà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 | +------------+------+
Phần thưởng đã đọc:Cách tính doanh số bán hàng trung bình mỗi ngày trong MySQL
Giả sử bạn muốn tính doanh số trung bình động trong 5 ngày qua. Đây là cách bạn có thể làm điều đó bằng cách sử dụng truy vấn SQL trong 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 | +------------+------+---------------+
Trong truy vấn trên, chúng tôi thực hiện tự nối bảng bán hàng của mình với chính nó và đối với mỗi giá trị order_date, chúng tôi tính giá trị trung bình dựa trên dữ liệu bán hàng trong 5 ngày trước đó. Trong truy vấn SQL của chúng tôi, truy vấn bên trong thực hiện tính toán trung bình, dựa trên dữ liệu bán hàng được thu thập cho từng khoảng thời gian của a.order_date (5 ngày trước đó) bằng cách sử dụng hàm dateiff.
Phần thưởng đã đọc:Cách tính trung bình động trong Redshift
Nếu bạn muốn thay đổi khoảng thời gian của mình, chỉ cần thay đổi phần bằng in đậm (GIỮA 0 và 4) trong truy vấn trên.
Bạn cũng có thể thêm nhiều bộ lọc hơn bằng cách cập nhật mệnh đề WHERE trong truy vấn lồng nhau.
Bạn có thể tùy chỉnh truy vấn trên để tính toán trung bình động trong MySQL, theo yêu cầu của bạn.
Bạn cũng có thể sử dụng công cụ biểu đồ để vẽ đường trung bình động trên biểu đồ đường hoặc trang tổng quan. Dưới đây là ví dụ về biểu đồ đường được tạo bằng Ubiq.
Nếu bạn muốn tạo biểu đồ, trang tổng quan và báo cáo từ cơ sở dữ liệu MySQL, bạn có thể thử Ubiq. Chúng tôi cung cấp bản dùng thử miễn phí 14 ngày.