Belajar Database MySQL #7: Fungsi Agregasi (Count, Sum, Avg, Max, Min)
Heru Iryanto
Teacher, Content Creator and Full-Stack DeveloperKetika Anda merancang Dashboard Admin (Halaman Pengurus Situs), biasanya ada beberapa kotak/kartu peringkasan di bagian atas. Misalnya: “Total Pengguna: 1.500 Orang”, “Total Saldo: Rp. 50.000.000”.
Kesalahan Fatal Pemula: Mereka akan memakai perintah SELECT * FROM pengguna untuk menarik semua 1.500 baris data ke memori aplikasi PHP mereka, lalu menyuruh PHP yang menghitung perulangannya (Looping) satu per satu. INI AKAN MEMBUAT SERVER ANDA MELEDAK KARENA KEHABISAN RAM!
Aturan Emas: Biarkan mesin Database (MySQL) yang melakukan matematikanya. MySQL sangat cepat dalam menghitung!
1️⃣ Menghitung Banyak Baris (COUNT)
Kasus: Ada berapa total buku yang kita miliki di tabel sekarang?
Gunakan Fungsi COUNT().
SELECT COUNT(*) FROM tabel_buku;
(Hasilnya bukan menampilkan tabel daftar buku, melainkan ia memunculkan SATU KOTAK kecil yang isinya hanya berupa ANGKA jumlah baris, misalnya “5”).
Kita bisa gabungkan dengan kondisi. “Berapa total buku yang terbit sebelum tahun 2020?”
SELECT COUNT(*) FROM tabel_buku WHERE tahun_terbit < 2020;
2️⃣ Menjumlahkan Nilai Angka (SUM)
Mari bermain imajinasi sebentar. Karena tabel_buku kita belum punya kolom harga, anggaplah kita menambahkan kolom harga (Tipe Data INT). Buku A harganya 50000, Buku B 20000.
Berapa total nilai aset seluruh buku kita dalam Rupiah?
SELECT SUM(harga) FROM tabel_buku;
(MySQL akan menumpuk dan menjumlahkan semua angka di kolom harga secara instan).
3️⃣ Rata-Rata (AVG), Maksimal (MAX), Minimal (MIN)
Tiga rumus ini sama persis dengan Microsoft Excel:
Rata-rata tahun terbit koleksi buku kita:
SELECT AVG(tahun_terbit) FROM tabel_buku;Buku dengan tahun terbit paling baru (Paling besar angkanya):
SELECT MAX(tahun_terbit) FROM tabel_buku;Buku tertua di koleksi (Paling kecil angkanya):
SELECT MIN(tahun_terbit) FROM tabel_buku;Trik Cantik: Anda bisa menggunakan
AS(Alias) untuk merapikan nama kolom laporannya:SELECT MIN(tahun_terbit) AS Buku_Tertua FROM tabel_buku;
4️⃣ Laporan Lanjutan (GROUP BY)
Bos Anda bertanya lagi: “Tolong kasih tahu saya laporan, masing-masing Penulis itu menyumbang berapa jumlah buku sih ke kita?”
Kita harus mengelompokkan (Grouping) data berdasarkan nama si Penulis, barulah kita berhitung jumlahnya.
Gunakan GROUP BY.
SELECT nama_penulis, COUNT(*) AS Total_Buku
FROM tabel_buku
GROUP BY nama_penulis;
(Hasil: MySQL akan membuat kelompok “Budi Programmer” -> Total 2 buku. Lalu kelompok “Siti UIUX” -> Total 1 buku. Sebuah laporan statistik langsung jadi!).
🗽 Kesimpulan
Jika Anda ingin membuat aplikasi Laporan Keuangan, Aplikasi Stok Kasir, atau Statistik Dashboard, maka fungsi Agregasi di atas akan menjadi sahabat karib Anda sehari-hari. Ingat: Segala beban perhitungan matematika harus ditumpahkan di MySQL, jangan di PHP!
Sampai di sini, kita hanya berkutat di 1 Laci (1 Tabel). Padahal sebuah database bisa menampung banyak tabel. Bagaimana jika 2 tabel yang berbeda ingin “Saling Mengobrol”? Mari kita masuk ke tingkat akhir yang menegangkan di materi Konsep Relasi Antar Tabel.
