Sering kali Anda mungkin perlu menghitung total berjalan atau total kumulatif untuk kolom tertentu, seperti penjualan. Karena tidak ada fungsi untuk menghitung total kumulatif di MySQL, Anda harus melakukannya melalui kueri SQL. Berikut adalah query SQL untuk menghitung total kumulatif di MySQL.
Cara Menghitung Total Kumulatif di MySQL
Berikut cara menghitung total kumulatif di MySQL. Katakanlah Anda memiliki tabel berikut yang berisi data 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-01-05',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-01-05 | 20 | +------------+------+
Katakanlah Anda ingin menghitung jumlah penjualan kumulatif, seperti,
+------------+------+-----------------+ | order_date | sale | cumulative_sale | +------------+------+-----------------+ | 2020-01-01 | 20 | 20 | | 2020-01-02 | 25 | 45 | | 2020-01-03 | 15 | 60 | | 2020-01-04 | 30 | 90 | | 2020-01-05 | 20 | 110 | +------------+------+-----------------+
Berikut query SQL untuk menghitung jumlah kumulatif di MySQL.
mysql> set @csum := 0; mysql> select order_date,sale, (@csum := @csum + sale) as cumulative_sale from sales order by order_date; +------------+------+-----------------+ | order_date | sale | cumulative_sale | +------------+------+-----------------+ | 2020-01-01 | 20 | 20 | | 2020-01-02 | 25 | 45 | | 2020-01-03 | 15 | 60 | | 2020-01-04 | 30 | 90 | | 2020-01-05 | 20 | 110 | +------------+------+-----------------+
Bonus baca : Cara Membuat Pivot Table di MySQL
Dalam kueri di atas, kami menetapkan variabel sementara csum ke 0. Kemudian untuk setiap baris kami menggunakannya untuk menghitung dan menyimpan jumlah kumulatif.
Harap dicatat, jumlah kumulatif ini tidak disimpan di kolom mana pun. Itu hanya ditampilkan dalam hasil.
Jika Anda ingin menyimpan nilai ini, Anda perlu menambahkan kolom baru ke tabel Anda dan menggunakan klausa UPDATE seperti yang ditunjukkan di bawah ini.
mysql> alter table sales add column cumulative_sum int; mysql> set @csum := 0; mysql> update sales set cumulative_sum = (@csum := @csum + sale) order by order_date; mysql> select order_date,sale,cumulative_sum from sales; +------------+------+----------------+ | order_date | sale | cumulative_sum | +------------+------+----------------+ | 2020-01-01 | 20 | 20 | | 2020-01-02 | 25 | 45 | | 2020-01-03 | 15 | 60 | | 2020-01-04 | 30 | 90 | | 2020-01-05 | 20 | 110 | +------------+------+----------------+
Anda dapat menyesuaikan kueri SQL Anda untuk menyertakan filter menggunakan klausa WHERE atau GABUNG, seperti yang ditunjukkan di bawah ini
mysql> set @csum := 0; mysql> select order_date,sale, (@csum := @csum + sale) as cumulative_sale from sales where <condition> order by order_date;
Bonus Baca : Cara Menghitung Median di MySQL
Karena MySQL tidak menawarkan fungsi bawaan untuk penjumlahan kumulatif, Anda dapat menggunakan kueri SQL di atas untuk menghitung total kumulatif di MySQL.
Setelah Anda dapat menghitung total kumulatif di MySQL, Anda dapat menggunakan alat charting dengan mudah memplotnya sebagai diagram garis atau grafik batang, seperti yang ditunjukkan di bawah ini. Berikut adalah contoh bagan yang 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.