Tutorial kali ini kita akan membahas Fungsi Count Pada Query SQL , Tidak jarang kita mendapatkan permasalahan tentang Cara Menghitung Jumlah Field / Data di Database berdasarkan kriteria tertentu atau berdasarkan Group Maupun Kelompok, Dimana Kita diharuskan menampilkan jumlah data di database dalam sebuah tabel yang ada. Untuk Lebih Jelasnya Memahami Fungsi Count disini akan dibahas dengan menggunakan contoh, misalnya kita mempunyai data dibawah ini
Mengenal Fungsi Count untuk menjumlahkan data
Berikut ini merupakan contoh data yang ada dalam sebuah tabel di database :
1. Kita akan menghitung jumlah data yang terdapat pada tabel tersebut, maka Query SQL -nya adalah :
Select Count(*) From KotaOutput :
Jumlahkota : 10
Bingung ?? Begini Script Lengkapnya ,,
example MYSQL :
<?php$query=mysql_query("Select Count(*) From Kota");
$hasil=mysql_fetch_array($query);
echo "Jumlahkota : $hasil";
?>
example MYSQLi :
<?php$query=mysqli_query($koneksi,"Select Count(*) From Kota");
$hasil=mysqli_fetch_array($query);
echo "Jumlahkota : $hasil";
?>
2. Kita akan menghitung jumlah propinsi yang terdapat pada tabel kota. Query yang digunakan adalah :
SELECT COUNT(DISTINCT propinsi) AS propinsi FROM kotaOutput :
Propinsi : 5
3. Kita akan Menghitung Jumlah Data dari Masing-Masing Propinsi
SELECT propinsi, COUNT(propinsi) AS jumlah FROM kota GROUP BY propinsiOutput :
Query Count berfungsi untuk menghitung banyaknya data pada suatu tabel atau kolom. Pada query kedua ada Count(Distinct expresi) berfungsi untuk mengetahui banyaknya data (bukan banyaknya Row). Sehingga data yang sama akan dianggap satu kesatuan.
Contoh Study Kasus :
Menjumlahkan Dan Mengurutkan Data Pada MySQL
Pertanyaannya, gimana cara menampilkan daftar Agama beserta jumlahnya ? dan gimana mengurutkannya berdasarkan jumlah, dari paling banyak sampai paling sedikit ?
Setelah sekian lama tidak update dikarenakan banyak hal, kali ini saya akan membagikan pengalaman mengenai penggunaan operasi COUNT dan TOTAL COUNT dalam satu tampilan query.Dari beberapa referensi yang saya dapatkan di internet, sangat sedikit yang melibatkan penjumlahan dari hasil COUNT untuk ditampilkan didalam tabel hasil Query, sebagai contoh untuk menghitung proporsi hasil COUNT per-item terhadap TOTAL COUNT. Masih bingung maksudnya?
Kasus yang saya gunakan adalah saya memiliki beberapa data nama sales yang menyetor ke beberapa toko dengan menyetor beberapa jenis buah. Saya ingin mengetahui berapa frekuensi dari masing masing sales dan proporsi masing-masing sales terhadap total sales. Ok langsung saja ini adalah tabel yang sudah saya buat
Saya ingin membuat laporan dengan tampilan seperti ini
Untuk menampilkan dua kolom pertama, yaitu nama_sales dan frekuensi_sales kita bisa menggunakan perintah COUNT dan dibantu perintah GROUP
SELECT nama_sales, COUNT(nama_sales) AS frekuensi_sales
FROM namatabel
GROUP BY nama_sales
Untuk menampilkan kolom ketiga diperoleh dari frekuensi_sales dibagi total frekuensi sales. Artinya kita haruslah menjumlahkan/SUM hasil dari perintah COUNT dengan tetap mempertahankan grouping nama_sales. Blok querynya mirip yang pertama yaitu
SELECT nama_sales, COUNT(nama_sales), [query] AS Prosentase
FROM namatabel
GROUP BY nama_sales
Sekarang tinggal menyelesaikan blok [query]-nya. Kita akan menggunakan perintah untuk menghitung semua frekuensi, artinya tidak menggunakan SUM, tetapi kita melakukan pendekatan dengan menghitung total semua frekuensi. Query-nya adalah
SELECT COUNT(*) FROM namatabel
Query ini akan menghasilkan output 10
Langkah berikutnya untuk rumus menghitung prosentase adalah (frekuensi/total frekuensi)*100. Frekuensi per sales kita ambil dari
COUNT(nama_sales)
sehingga query-nya menjadi
(COUNT(nama_sales) / SELECT COUNT(*) FROM namatabel)*100
Apabila inging hasilnya dibulatkan tanpa angka dibelakang koma, kita bisa menggunakan ROUND( ) sehingga query-nya menjadi
ROUND((COUNT(nama_sales)/(SELECT COUNT(*) FROM toko))*100, 0)
kalo kita menginginkan ada 2 angka setelah koma tinggal diganti saja menjadi
ROUND((COUNT(nama_sales)/(SELECT COUNT(*) FROM toko))*100, 2)
Tahapan terakhir adalah menggabungkan Query terakhir kita dengan Query pertama dengan mengganti blok [query]-nya sehingga menjadi
SELECT nama_sales, COUNT(nama_sales) AS frekuensi_sales,
ROUND((COUNT(nama_sales)/(SELECT COUNT(*) FROM toko))*100,0) AS Prosentase
FROM namatabel
GROUP BY nama_sales
Demikian query yang bisa saya bagikan, anda bisa memodifikasi dengan kalkulasi perhitungan yang lain. Semoga bermanfaat.