Tăng trưởng hàng tháng là một KPI chỉ số kinh doanh hữu ích để so sánh hàng tháng giữa doanh số bán hàng, lượt đăng ký, v.v. Chúng tôi sẽ tính toán mức tăng trưởng phần trăm hàng tháng thông qua truy vấn SQL, vì không có hàm PostgreSQL cho nó. Dưới đây là cách tính toán mức tăng trưởng hàng tháng trong PostgreSQL.
Cách tính tăng trưởng hàng tháng trong PostgreSQL
Giả sử bạn có một bảng chứa doanh số hàng tháng được gọi là sales_data (tháng, giảm giá)
postgres=# create table sales_data(month int,sale int); postgres=# insert into sales_data(month,sale) values(1,2021), (2,2102),(3,2150),(4,2312),(5,2425); postgres=# select * from sales_data; month | sale -------+------ 1 | 2021 2 | 2102 3 | 2150 4 | 2312 5 | 2425
Đây là truy vấn SQL để tính toán phần trăm tăng trưởng hàng tháng trong doanh số bán hàng trong PostgreSQL.
postgres=# select month,sum(sale) as current_sale, lag(sum(sale), 1) over (order by month) as previous_month_sale, (100 * (sum(sale) - lag(sum(sale), 1) over (order by month)) / lag(sum(sale), 1) over (order by month)) || '%' as growth from sales_data group by 1 order by 1; month | current_sale | previous_month_sale | growth -------+--------------+---------------------+-------- 1 | 2021 | | 2 | 2102 | 2021 | 4% 3 | 2150 | 2102 | 2% 4 | 2312 | 2150 | 7% 5 | 2425 | 2312 | 4%
Trong truy vấn trên, chúng tôi sử dụng hàm cửa sổ LAG để tính toán doanh số bán hàng của tháng trước và sử dụng hàm này để tính toán mức tăng trưởng hàng tháng trong PostgreSQL. LAG cho phép bạn tìm nạp hàng đứng trước hàng hiện tại, ở một khoảng chênh lệch xác định, là 1 trong trường hợp của chúng tôi.
Phần thưởng đã đọc:Cách tạo Pivot Table trong PostgreSQL
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, thay vì con số hàng tháng. Trong trường hợp này, trước tiên, chúng tôi tổng hợp nó thành số lượng bán hàng hàng tháng và sau đó áp dụng truy vấn SQL ở trên để tính toán mức tăng trưởng hàng tháng trong PostgreSQL.
Giả sử bạn có dữ liệu bán hàng hàng ngày.
postgres=# create sales (order_date date, sale int); postgres=# 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); postgres=# 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 |
Đây là truy vấn SQL để tính toán tốc độ tăng trưởng hàng tháng trong PostgreSQL
postgres=# select month,sum(sale) as current_sale, lag(sum(sale), 1) over (order by month) as previous_month_sale, round((100 * (sum(sale) - lag(sum(sale), 1) over (order by month)) / lag(sum(sale), 1) over (order by month)),2) || '%' as growth from (select to_char(order_date,'Mon') as month, sum(sale) as sale from sales group by 1 ) sales_data group by 1 order by 1; month | current_sale | previous_month_sale | growth -------+--------------+---------------------+--------- Feb | 65 | | Jan | 90 | 65 | 38.46% Mar | 65 | 90 | -27.78%
Trong truy vấn ở trên, chúng tôi tổng hợp dữ liệu bán hàng hàng ngày thành các giá trị hàng tháng (bằng in đậm ) và sau đó sử dụng truy vấn trước đó.
Bạn cũng có thể lọc dữ liệu của mình bằng mệnh đề WHERE trước khi tính toán mức tăng trưởng hàng tháng trong PostgreSQL.
postgres=# select month,sum(sale) as current_sale, lag(sum(sale), 1) over (order by month) as previous_month_sale, round((100 * (sum(sale) - lag(sum(sale), 1) over (order by month)) / lag(sum(sale), 1) over (order by month)),2) || '%' as growth from (select to_char(order_date,'Mon') as month, sum(sale) as sale from sales WHERE condition group by 1 ) sales_data group by 1 order by 1;
Sau khi bạn tính toán mức tăng trưởng hàng tháng trong PostgreSQL, 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 thể hiện mức tăng trưởng theo phần trăm hàng thá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 PostgreSQL, bạn có thể thử Ubiq. Chúng tôi cung cấp bản dùng thử miễn phí 14 ngày.