Laporan bisnis hampir selalu berbentuk ringkasan: total penjualan, rata-rata transaksi, jumlah pelanggan per kota. Section ini melatih pola pikir agregasi — dari fungsi agregat tunggal sampai pemadatan bertingkat dengan WITH ROLLUP.
Bedah fungsi agregasi COUNT di MySQL: perbedaan COUNT(*), COUNT(kolom), dan COUNT(DISTINCT kolom), perlakuan NULL pada tiap varian, serta perilaku COUNT pada hasil kosong yang selalu menghasilkan 0.
Buka → # SUMBedah fungsi agregasi SUM di MySQL: menjumlahkan kolom angka, menjumlahkan hasil ekspresi seperti jumlah * harga, perilaku SUM ketika tidak ada baris cocok yang menghasilkan NULL, penggunaan COALESCE, dan konsep SUM(DISTINCT).
Buka → # AVGBedah fungsi agregasi AVG di MySQL: menghitung nilai rata-rata, aturan skala hasil DECIMAL yang menampilkan empat hingga enam angka desimal, perilaku AVG yang mengabaikan NULL, perbandingan dengan SUM/COUNT manual, dan pembulatan tampilan dengan ROUND.
Buka → # MIN dan MAXBedah fungsi agregasi MIN dan MAX di MySQL: nilai terkecil dan terbesar untuk angka, tanggal, dan teks, urutan perbandingan collation pada data string, perilaku terhadap NULL, serta pola subquery untuk menemukan baris yang memuat nilai ekstrem.
Buka → # GROUP BYBedah klausa GROUP BY di MySQL: membagi tabel menjadi kelompok untuk COUNT dan SUM per grup, aturan kolom non-agregat yang wajib ikut GROUP BY beserta error sql_mode only_full_group_by, perilaku urutan hasil pada MySQL 8, pengelompokan berdasarkan ekspresi seperti DATE(), dan perlakuan NULL yang membentuk kelompok tersendiri.
Buka → # HAVINGBedah klausa HAVING untuk menyaring hasil agregat: perbedaan dengan WHERE, urutan eksekusi logis klausa SELECT, penyaringan SUM dan COUNT, penggunaan alias agregat yang dimungkinkan MySQL, hingga kombinasi lengkap WHERE-GROUP BY-HAVING-ORDER BY.
Buka → # Agregasi dengan KondisiHitung agregat secara selektif dalam satu query dengan SUM(CASE WHEN ...), COUNT(IF(...)), dan pola pivot sederhana; bandingkan pendekatan kolom kondisional melawan GROUP BY beserta kapan masing-masing lebih tepat dipakai.
Buka → # WITH ROLLUPTambahkan baris subtotal dan total keseluruhan otomatis dengan WITH ROLLUP: pengelompokan bertingkat dua kolom, membedakan NULL penanda rollup dari NULL data asli lewat fungsi GROUPING(), serta batasan kombinasi dengan ORDER BY dan LIMIT.
Buka →