Tăng trưởng hàng tháng là một chỉ số hoạt động quan trọng đối với mọi doanh nghiệp. Vì không có chức năng tính toán phần trăm tăng trưởng hàng tháng trong MySQL, bạn cần viết một truy vấn SQL để tính toán sự thay đổi hàng tháng. Vì vậy, hãy xem cách tính toán phần trăm tăng trưởng từng tháng trong MySQL. Bạn cũng có thể sử dụng nó để theo dõi sự thay đổi phần trăm hàng tháng theo thời gian trong doanh nghiệp của bạn.
Cách tính phần trăm tăng trưởng theo tháng trong MySQL
Giả sử bạn có bảng dữ liệu month_sales (tháng, doanh số bán hàng) chứa doanh số hàng tháng, như được hiển thị bên dưới.
mysql> create table monthly_sales(month int,sale int); mysql> insert into monthly_sales(month,sale) values(1,20), (2,30),(3,25),(4,45),(5,25); mysql> select * from monthly_sales; +-------+------+ | month | sale | +-------+------+ | 1 | 20 | | 2 | 30 | | 3 | 25 | | 4 | 45 | | 5 | 25 | +-------+------+
Bạn có thể tính toán phần trăm tăng trưởng từng tháng bằng cách sử dụng SQL sau.
mysql> select month, sale, if(@last_entry = 0, 0, round(((sale - @last_entry) / @last_entry) * 100,2)) "growth rate", @last_entry := sale from (select @last_entry := 0) x, (select month, sum(sale) sale from monthly_sales group by month) y; +-------+------+-------------+---------------------+ | month | sale | growth rate | @last_entry := sale | +-------+------+-------------+---------------------+ | 1 | 20 | 0 | 20 | | 2 | 30 | 50.00 | 30 | | 3 | 25 | -16.67 | 25 | | 4 | 45 | 80.00 | 45 | | 5 | 25 | -44.44 | 25 | +-------+------+-------------+---------------------+
Trong truy vấn trên, đối với mỗi hàng (tháng), chúng tôi lưu trữ doanh thu của tháng trước trong một biến tạm thời last_entry
Tuy nhiên, trong hầu hết các trường hợp, bạn sẽ có dữ liệu bán hàng hàng ngày. Trong trường hợp đó, trước tiên bạn cần phải tổng hợp nó vào doanh số bán hàng hàng tháng, sau đó tính toán tỷ lệ phần trăm tăng trưởng hàng tháng. Giả sử bạn có một bảng dữ liệu bán hàng (tạo_tạo_tạo, bán hàng) có chứa thông tin 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-02-05',20),('2020-02-10',20),('2020-02-06',25), ('2020-03-07',15),('2020-03-08',30),('2020-03-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-02-05 | 20 | | 2020-02-10 | 20 | | 2020-02-06 | 25 | | 2020-03-07 | 15 | | 2020-03-08 | 30 | | 2020-03-09 | 20 | +------------+------+
Giả sử bạn muốn tính toán tốc độ tăng trưởng hàng tháng, đây là truy vấn SQL cho nó.
mysql> select month, sale, if(@last_entry = 0, 0, round(((sale - @last_entry) / @last_entry) * 100,2)) "growth rate", @last_entry := sale from (select @last_entry := 0) x, (select month, sum(sale) sale from (select month(order_date) as month,sum(sale) as sale from sales group by month(order_date)) monthly_sales group by month) y; +-------+------+-------------+---------------------+ | month | sale | growth rate | @last_entry := sale | +-------+------+-------------+---------------------+ | 1 | 90 | 0 | 90 | | 2 | 65 | -27.78 | 65 | | 3 | 65 | 0.00 | 65 | +-------+------+-------------+---------------------+
Trong truy vấn trên, trước tiên, chúng tôi tổng hợp doanh số bán hàng hàng ngày thành các giá trị hàng tháng (được hiển thị bằng in đậm ) và sau đó sử dụng truy vấn trước đó để tính toán phần trăm tăng trưởng.
Phần thưởng đã đọc:Cách tính doanh số bán hàng trung bình mỗi ngày trong MySQL
Nếu bạn muốn lọc dữ liệu của mình trước khi tính toán phần trăm tăng trưởng từng tháng, bạn có thể làm điều đó bằng cách thêm mệnh đề WHERE vào truy vấn của mình như được hiển thị bên dưới
mysql> select month, sale, if(@last_entry = 0, 0, round(((sale - @last_entry) / @last_entry) * 100,2)) "growth rate", @last_entry := sale from (select @last_entry := 0) x, (select month, sum(sale) sale from (select month(order_date) as month,sum(sale) as sale from sales WHERE condition group by month(order_date)) monthly_sales group by month) y;
Phần thưởng Đọc:Làm thế nào để Tính Tổng Doanh số Mỗi tháng trong MySQL?
Xin lưu ý :Vì việc tính toán tỷ lệ phần trăm tăng trưởng từng tháng dựa trên khái niệm lưu trữ giá trị của hàng trước đó trong một biến tạm thời, hãy đảm bảo rằng bảng của bạn được sắp xếp theo thứ tự tăng dần của tháng (ví dụ:1,2,3, v.v. hoặc 202001,202002 , 202003, v.v.). Nếu không, dữ liệu của bạn có thể được sắp xếp theo thứ tự bảng chữ cái và đưa ra kết quả sai khi bạn tính toán phần trăm tăng trưởng từng tháng trong MySQL.
Bạn có thể sử dụng công cụ báo cáo để vẽ dữ liệu này trên biểu đồ thanh hoặc trang tổng quan và chia sẻ nó với nhóm của bạn. Dưới đây là một ví dụ về biểu đồ thanh cho thấy mức tăng trưởng doanh số theo phần trăm hàng tháng, được tạo bằng cách sử dụ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.