Fungsi Agregasi &�Pengelompokan Data
Menguasai GROUP BY & HAVING dalam SQL� Mata Pelajaran Basis Data - Kelas XI RPL
Mengapa Perlu Agregasi?
Bayangkan Anda mengelola ratusan ribu baris data pemain turnamen E-Sports. Bagaimana cara Anda mencari total perolehan poin terbanyak tanpa harus menghitungnya satu per satu dengan kalkulator?
Fungsi | Kegunaan | Contoh Implementasi SQL |
COUNT() | Menghitung jumlah total baris data | SELECT COUNT(id_pemain) FROM pemain; |
SUM() | Menjumlahkan seluruh nilai pada kolom numerik | SELECT SUM(skor) FROM pemain; |
AVG() | Mencari nilai rata-rata dari sekumpulan data | SELECT AVG(skor) FROM pemain; |
MAX() | Mencari nilai tertinggi (maksimal) | SELECT MAX(skor) FROM pemain; |
MIN() | Mencari nilai terendah (minimal) | SELECT MIN(skor) FROM pemain; |
5 Fungsi Agregasi Utama
Kita memiliki sebuah tabel bernama pemain dengan ribuan data.
Kolom Tersedia: nama, role (misal: Jungler, Roamer, Gold Laner), klub, dan skor_performa.
Pertanyaan Bisnis: Bagaimana cara kita melihat rata-rata skor performa untuk setiap role dalam game tersebut?
Kita tidak bisa sekadar menggunakan AVG() biasa, karena kita ingin nilainya terpisah per role.
Studi Kasus: Database Turnamen
Memecah Data Menjadi Kelompok
GROUP BY berfungsi untuk mengelompokkan baris data yang memiliki nilai yang sama dalam kolom tertentu menjadi baris ringkasan tunggal.
Sangat berguna bila dipadukan dengan fungsi agregasi (COUNT, MAX, MIN, SUM, AVG) untuk menghasilkan laporan statistik.
Sintaks SQL
Berikut cara mengelompokkan skor berdasarkan role:
SELECT
AVG
FROM
GROUP BY
Mengenal Klausa GROUP BY
GROUP BY itu ibarat menyortir sekumpulan permen berdasarkan warnanya terlebih dahulu, baru kemudian menghitung jumlah tiap warnanya.
"
"
Menyaring Data Kelompok (HAVING)
Bagaimana jika dari hasil rata-rata tadi, kita hanya ingin menampilkan role yang rata-rata skor performanya di atas 75? Bisakah kita menggunakan WHERE?
Klausa WHERE
Digunakan untuk menyaring baris data mentah sebelum proses pengelompokan (agregasi) dilakukan oleh sistem.
Klausa HAVING
Digunakan untuk menyaring hasil akhir setelah data dikelompokkan dan diagregasi. Ini adalah pendamping setia GROUP BY.
WHERE
70
-- Menyaring pemain secara individu
HAVING
AVG
70
-- Menyaring hasil rata-rata per role
WHERE vs HAVING
1. SELECT & FROM
Tentukan tabel sumber data dan kolom yang ingin ditampilkan bersama fungsi agregatnya (Misal: COUNT).
2. GROUP BY
Pilih kolom sebagai dasar pengelompokan. Sistem basis data akan melebur baris yang identik di kolom ini.
3. HAVING
Terapkan filter khusus pada hasil kelompok tersebut agar output laporan menjadi relevan dan akurat.
Langkah Merakit Query Kompleks
Saatnya Praktik!
Buka phpMyAdmin atau SQL Fiddle Anda.� Mari bereksperimen dengan tabel yang sudah disiapkan.