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

Cara Menghitung Persentase Pertumbuhan Minggu Ke Minggu di MySQL

Memantau Pertumbuhan Persentase Minggu-ke-minggu adalah cara yang berguna untuk melacak tren pertumbuhan mingguan dalam bisnis Anda. Berikut cara menghitung persentase pertumbuhan minggu ke minggu di MySQL. Ini dapat digunakan untuk menghitung perubahan minggu demi minggu dalam SQL untuk metrik apa pun.

Cara Menghitung Persentase Pertumbuhan Minggu Ke Minggu di MySQL

Berikut adalah langkah-langkah untuk menghitung persentase pertumbuhan minggu ke minggu di MySQL. Katakanlah Anda memiliki tabel mingguan_penjualan(minggu,penjualan) yang berisi angka penjualan mingguan, seperti yang ditunjukkan di bawah ini.

mysql> create table weekly_sales(week int, sale int);

mysql> insert into weekly_sales(week,sale) 
       values(1,20),(2,30),(3,25),(4,45),(5,25);

mysql> select * from weekly_sales;
+------+------+
| week | sale |
+------+------+
|    1 |   20 |
|    2 |   30 |
|    3 |   25 |
|    4 |   45 |
|    5 |   25 |
+------+------+

Anda dapat menghitung persentase pertumbuhan dari minggu ke minggu menggunakan kueri SQL berikut untuk persentase pertumbuhan.

mysql> select week, 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 week, sum(sale) sale
         from   weekly_sales
         group by week) y;
+------+------+-------------+---------------------+
| week | 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 minggu, kami menyimpan data minggu sebelumnya dalam variabel sementara yang disebut last_entry dan gunakan untuk menghitung persentase pertumbuhan.

Bonus Baca : Cara Menghitung Persentase Dua Kolom di MySQL

Namun, dalam kebanyakan kasus, Anda akan memiliki data penjualan harian, bukan penjualan mingguan. Jadi, dalam hal ini, Anda harus terlebih dahulu menggabungkannya ke penjualan mingguan, lalu menggunakan kueri di atas untuk menghitung persentase pertumbuhan dari minggu ke minggu.

Katakanlah Anda memiliki tabel data penjualan harian penjualan(tanggal_pesanan, obral)

mysql>create table sales(order_date date,sale int);

mysql>insert into sales(order_date,sale)
values('2020-01-01',10),('2020-01-02',12),('2020-01-03',15),
('2020-01-04',11),('2020-01-05',13),('2020-01-06',9),
('2020-01-07',21),('2020-01-08',10),('2020-01-09',10),
('2020-01-10',2),('2020-01-11',16),('2020-01-12',12),
('2020-01-13',10),('2020-01-14',18),('2020-01-15',15),
('2020-01-16',12),('2020-01-17',10),('2020-01-18',18),
('2020-01-19',14),('2020-01-20',16),('2020-01-21',12),
('2020-01-22',21),('2020-01-23',13),('2020-01-24',15),
('2020-01-25',20),('2020-01-26',14),('2020-01-27',16),
('2020-01-28',15),('2020-01-29',10),('2020-01-30',18);

mysql>select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-01-01 |   10 |
| 2020-01-02 |   12 |
| 2020-01-03 |   15 |
| 2020-01-04 |   11 |
| 2020-01-05 |   13 |
| 2020-01-06 |    9 |
| 2020-01-07 |   21 |
| 2020-01-08 |   10 |
| 2020-01-09 |   10 |
| ...        |   ...|
+------------+------+

Katakanlah Anda ingin menghitung persentase pertumbuhan dari minggu ke minggu, inilah SQL untuk perubahan persen dari waktu ke waktu.

mysql> select week, 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 week, sum(sale) sale
            from   (select week(order_date) as week,sum(sale) as sale
                    from sales group by week(order_date)) weekly_sales
            group by week) y;
+------+------+-------------+---------------------+
| week | sale | growth rate | @last_entry := sale |
+------+------+-------------+---------------------+
|    0 |   48 |           0 |                  48 |
|    1 |   81 |       68.75 |                  81 |
|    2 |   95 |       17.28 |                  95 |
|    3 |  111 |       16.84 |                 111 |
|    4 |   73 |      -34.23 |                  73 |
+------+------+-------------+---------------------+

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

Bonus Baca : Cara Menghitung Persentase Satu Kolom di MySQL

Jika Anda ingin memfilter data yang digunakan untuk kueri Anda, Anda dapat menambahkan klausa WHERE dalam kueri Anda seperti yang ditunjukkan di bawah ini

mysql> select week, 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 week, sum(sale) sale
            from   (select week(order_date) as week,sum(sale) as sale
                    from sales 
                    WHERE condition
                    group by week(order_date)) weekly_sales
            group by week) y;

Harap dicatat, karena perhitungan persentase pertumbuhan minggu ke minggu tergantung pada penyimpanan nilai baris sebelumnya dalam variabel sementara, harap pastikan bahwa tabel Anda sudah diurutkan dalam urutan nomor minggu. Jika tidak, mungkin akan memberikan hasil yang salah.

Setelah Anda menghitung persentase pertumbuhan dari minggu ke minggu, Anda dapat menggunakan alat bagan untuk memplot hasilnya dalam bagan batang, dan membagikannya dengan tim Anda. Berikut adalah contoh diagram batang yang menunjukkan persentase perubahan dari waktu ke waktu, 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. SQL DELETE dengan JOIN tabel lain untuk kondisi WHERE

  2. Apa itu MySQL? – Pengantar Sistem Manajemen Basis Data

  3. Kesalahan Migrasi Laravel:Kesalahan sintaks atau pelanggaran akses:1071 Kunci yang ditentukan terlalu panjang; panjang kunci maksimal adalah 767 byte

  4. Pencarian MySQL dan mengganti beberapa teks di bidang

  5. Python mengimpor kesalahan MySQLdb - Mac 10.6