Materi
GROUP BY memecah baris menjadi kelompok berdasarkan nilai satu kolom atau lebih, lalu menghitung fungsi agregatnya untuk setiap kelompok. Hasilnya satu baris per kelompok, bukan satu baris untuk seluruh tabel.
SELECT kota, COUNT(*) FROM pelanggan GROUP BY kota;Kolom yang dikelompokkan hampir selalu ikut ditulis di SELECT; tanpa itu hasilnya berupa deretan angka tanpa keterangan kelompok asalnya. Urutan penulisannya: SELECT, FROM, WHERE, lalu GROUP BY.
WHERE bekerja sebelum pengelompokan. Kueri SELECT kategori, COUNT(*) FROM produk WHERE stok > 0 GROUP BY kategori membuang produk yang stoknya habis lebih dulu, baru menghitung sisanya per kategori.
Pengelompokan dapat memakai lebih dari satu kolom yang dipisah koma: setiap pasangan nilai yang benar-benar ada di tabel menjadi satu kelompok. Jumlah baris hasilnya karena itu tidak pernah melebihi jumlah baris tabel asalnya.