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.

# COUNT

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 →
# SUM

Bedah 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 →
# AVG

Bedah 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 MAX

Bedah 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 BY

Bedah 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 →
# HAVING

Bedah 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 Kondisi

Hitung 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 ROLLUP

Tambahkan 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 →