Pertumbuhan Bulan ke Bulan adalah KPI metrik bisnis yang berguna untuk perbandingan bulan ke bulan dari penjualan, pendaftaran, dll. Kami akan menghitung persentase pertumbuhan bulanan melalui kueri SQL, karena tidak ada fungsi PostgreSQL untuk itu. Berikut cara menghitung pertumbuhan bulan ke bulan di PostgreSQL.
Cara Menghitung Pertumbuhan Bulan ke Bulan di PostgreSQL
Katakanlah Anda memiliki tabel yang berisi penjualan bulanan yang disebut data_penjualan(bulan, penjualan)
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
Berikut kueri SQL untuk menghitung persentase pertumbuhan penjualan dari bulan ke bulan di 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%
Dalam kueri di atas, kami menggunakan fungsi jendela LAG untuk menghitung penjualan bulan sebelumnya, dan menggunakannya untuk menghitung pertumbuhan bulan ke bulan di PostgreSQL. LAG memungkinkan Anda mengambil baris yang muncul sebelum baris saat ini, pada offset yang ditentukan, yaitu 1 dalam kasus kami.
Bonus baca: Cara Membuat Tabel Pivot di PostgreSQL
Dalam kebanyakan kasus, Anda akan memiliki data penjualan harian, bukan angka bulanan. Dalam hal ini, pertama-tama kami menggabungkannya ke angka penjualan bulanan dan kemudian menerapkan kueri SQL di atas untuk menghitung pertumbuhan bulan ke bulan di PostgreSQL.
Katakanlah Anda memiliki data penjualan harian.
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 |
Berikut kueri SQL untuk menghitung tingkat pertumbuhan bulanan di 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%
Dalam kueri di atas, kami menggabungkan data penjualan harian ke nilai bulanan (dalam tebal ) lalu gunakan kueri sebelumnya.
Anda juga dapat memfilter data Anda, menggunakan klausa WHERE, sebelum menghitung pertumbuhan bulan ke bulan di 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;
Setelah Anda menghitung pertumbuhan bulan ke bulan di PostgreSQL, Anda dapat menggunakan alat pelaporan untuk memplot data ini pada diagram batang atau dasbor dan membagikannya dengan tim Anda. Berikut adalah contoh diagram batang yang menunjukkan persentase pertumbuhan dari bulan ke bulan, dibuat menggunakan Ubiq.
Jika Anda ingin membuat grafik, dasbor &laporan dari database PostgreSQL, Anda dapat mencoba Ubiq. Kami menawarkan uji coba gratis selama 14 hari.