Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Menghitung Persentase Pertumbuhan Bulan Per Bulan di MySQL

Pertumbuhan bulan ke bulan adalah indikator kinerja utama untuk setiap bisnis. Karena, tidak ada fungsi untuk menghitung persentase pertumbuhan bulan demi bulan di MySQL, Anda perlu menulis kueri SQL untuk menghitung perubahan bulan ke bulan. Jadi mari kita lihat bagaimana menghitung persentase pertumbuhan bulan demi bulan di MySQL. Anda juga dapat menggunakannya untuk memantau perubahan persentase bulan ke bulan dari waktu ke waktu dalam bisnis Anda.

Cara Menghitung Persentase Pertumbuhan Bulan Per Bulan di MySQL

Katakanlah Anda memiliki tabel data month_sales(month,sale) yang berisi penjualan bulanan, seperti yang ditunjukkan di bawah ini.

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 |
+-------+------+

Anda dapat menghitung persentase pertumbuhan bulan demi bulan menggunakan SQL berikut.

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 |
+-------+------+-------------+---------------------+

Dalam kueri di atas, untuk setiap baris (bulan), kami menyimpan penjualan bulan sebelumnya dalam variabel sementara masuk_terakhir

Namun, dalam kebanyakan kasus, Anda akan memiliki data penjualan harian. Dalam hal ini, Anda harus terlebih dahulu menggabungkannya ke penjualan bulanan, lalu menghitung persentase tingkat pertumbuhan bulan demi bulan. Katakanlah Anda memiliki tabel data penjualan(created_at, sale) yang berisi informasi 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-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 |
+------------+------+

Katakanlah Anda ingin menghitung tingkat pertumbuhan bulanan, inilah kueri SQL untuknya.

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 |
+-------+------+-------------+---------------------+   

Dalam kueri di atas, pertama-tama kami menggabungkan penjualan harian ke dalam nilai bulanan (ditampilkan dalam tebal ) lalu gunakan kueri sebelumnya untuk menghitung persentase pertumbuhan.

Bonus Baca : Cara Menghitung Rata-Rata Penjualan Per Hari di MySQL

Jika Anda ingin memfilter data Anda sebelum menghitung persentase pertumbuhan bulan demi bulan, Anda dapat melakukannya dengan menambahkan klausa WHERE ke kueri Anda seperti yang ditunjukkan di bawah ini

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;

Bonus Baca : Bagaimana Cara Menghitung Total Penjualan Per Bulan di MySQL?

Harap diperhatikan :Karena perhitungan persentase pertumbuhan bulan demi bulan didasarkan pada konsep menyimpan nilai baris sebelumnya dalam variabel sementara, pastikan tabel Anda diurutkan dalam urutan bulan (misalnya 1,2,3,dst atau 202001,202002 ,202003, dll.). Jika tidak, data Anda mungkin akan diurutkan berdasarkan abjad dan memberikan hasil yang salah saat Anda menghitung persentase pertumbuhan bulan demi bulan di MySQL.

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 penjualan dari bulan ke bulan, 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.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan MySql:1364 Bidang 'display_name' tidak memiliki nilai default

  2. DATE_ADD() Contoh – MySQL

  3. Menggunakan HHVM Dengan WordPress

  4. Permintaan untuk menghapus kunci unik atau utama dari tabel MYsql

  5. Cara Menemukan Nilai Non-Numerik di Kolom di MySQL