Terkadang Anda mungkin perlu menghitung persentase kolom (misalnya penjualan, pendapatan) dalam data Anda untuk memahami berapa persen nilai total kolom Anda yang berasal dari setiap baris (misalnya negara, negara bagian, dll). Karena tidak ada fungsi out-of-the-box untuk menghitung nilai ini, Anda perlu menulis kueri SQL untuknya. Berikut cara menghitung persentase kolom di MySQL
Cara Menghitung Persentase Kolom di MySQL
Katakanlah Anda memiliki tabel berikut seperti yang ditunjukkan di bawah ini.
mysql> create table sales(rep varchar(255),sale int); mysql> insert into sales values('Bob',15),('Sally',30),('Peter',15); mysql> select * from sales; +-------+------+ | rep | sale | +-------+------+ | Bob | 15 | | Sally | 30 | | Peter | 15 | +-------+------+
Katakanlah Anda ingin menampilkan kolom 'persen dari total' yang merupakan persentase dari total penjualan kolom, seperti yang ditunjukkan di bawah ini.
+-------+------+------------------+ | rep | sale | percent of total | +-------+------+------------------+ | Bob | 15 | 25 | | Sally | 30 | 50 | | Peter | 15 | 25 | +-------+------+------------------+
Anda dapat melakukan ini dengan berbagai cara hanya dengan menggunakan satu kueri. Tidak perlu menulis kueri terpisah untuk menghitung total dan persentase. Mari kita lihat masing-masing
Bonus Baca : Cara Menghitung Persentase Dua Kolom di MySQL
Cara Menghitung Persentase Kolom di MySQL menggunakan CROSS JOIN
Untuk menghitung persentase kolom di MySQL, Anda cukup bergabung dengan sum() dari penjualan kolom dengan tabel asli.
SELECT Rep, Sale, Sale * 100 / t.s AS `percent of total` FROM sales CROSS JOIN (SELECT SUM(sale) AS s FROM sales) t; +-------+------+------------------+ | rep | sale | percent of total | +-------+------+------------------+ | Bob | 15 | 25 | | Sally | 30 | 50 | | Peter | 15 | 25 | +-------+------+------------------+
Jika Anda ingin menambahkan klausa where untuk memfilter data Anda, Anda harus meletakkannya setelah CROSS JOIN, seperti yang ditunjukkan di bawah ini. Jika tidak, Anda akan mendapatkan kesalahan.
SELECT Rep, Sale, Sale * 100 / t.s AS `percent of total` FROM sales CROSS JOIN (SELECT SUM(sale) AS s FROM sales) t where Rep='Bob'; +------+------+------------------+ | Rep | Sale | percent of total | +------+------+------------------+ | Bob | 15 | 25 | +------+------+------------------+
Namun, jika Anda ingin menambahkan klausa where selama penjumlahan kolom, Anda perlu menambahkannya di klausa pilih total, seperti yang ditunjukkan di bawah ini. Katakanlah, Anda ingin mengecualikan Bob dari total itu sendiri, lalu inilah kueri untuk melakukannya.
SELECT Rep, Sale, Sale * 100 / t.s AS `percent of total` FROM sales CROSS JOIN (SELECT SUM(sale) AS s FROM sales where Rep<>'Bob') t where Rep<>'Bob'; +-------+------+------------------+ | Rep | Sale | percent of total | +-------+------+------------------+ | Sally | 30 | 66.6667 | | Peter | 15 | 33.3333 | +-------+------+------------------+
Bonus Baca : Cara Menghitung Persentase Pertumbuhan Minggu Ke Minggu di MySQL
Cara Menghitung Persentase Kolom di MySQL menggunakan SUBSELECT/SUBQUERY
Anda juga dapat menghitung persentase kolom menggunakan subpilihan, daripada menggunakan GABUNG, seperti yang ditunjukkan di bawah ini.
SELECT Rep, Sale, Sale * 100 / (SELECT SUM(sale) AS s FROM sales) AS `percent of total` FROM sales; +-------+------+------------------+ | rep | sale | percent of total | +-------+------+------------------+ | Bob | 15 | 25 | | Sally | 30 | 50 | | Peter | 15 | 25 | +-------+------+------------------+
Jika Anda ingin menambahkan klausa where untuk memfilter data Anda, Anda harus meletakkannya setelah CROSS JOIN, seperti yang ditunjukkan di bawah ini. Jika tidak, Anda akan mendapatkan kesalahan.
SELECT Rep, Sale, Sale * 100 / (SELECT SUM(sale) AS s FROM sales) AS `percent of total` FROM sales where Rep='Bob'; +--------+--------+-------------------+ | Rep | Sale | percent of total | +--------+--------+-------------------+ | Bob | 15 | 25 | +--------+--------+-------------------+
Namun, jika Anda ingin menambahkan klausa where saat menjumlahkan kolom, Anda perlu menambahkannya di klausa pilih total. Katakanlah, Anda ingin mengecualikan Bob dari total itu sendiri, lalu inilah kueri untuk melakukannya.
SELECT Rep, Sale, Sale * 100 / (SELECT SUM(sale) AS s FROM sales where Rep='Bob') AS `percent of total` FROM sales where Rep='Bob'; +-------+------+------------------+ | Rep | Sale | percent of total | +-------+------+------------------+ | Sally | 30 | 66.6667 | | Peter | 15 | 33.3333 | +-------+------+------------------+
Anda dapat menyesuaikan kueri di atas sesuai kebutuhan Anda untuk menghitung persentase kolom di MySQL.
Selanjutnya, Anda dapat menggunakan alat pelaporan untuk memplot data dalam diagram lingkaran atau dasbor. Berikut adalah contoh diagram lingkaran 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.