Lesson 02 / Aggregation
GROUP BY
Mengelompokkan baris sebelum membuat ringkasan.
EST. 20 MIN
Mengelompokkan Data dengan GROUP BY
GROUP BY menggabungkan baris yang memiliki nilai sama pada kolom tertentu. Biasanya ia dipakai bersama fungsi agregat.
Tujuan belajar
Setelah lesson ini, kamu dapat membuat ringkasan per kelompok dengan fungsi agregat, lalu membedakan penggunaan WHERE dan HAVING.
SELECT city, COUNT(*) AS customer_count
FROM customers
GROUP BY city;
Setiap kolom pada SELECT yang bukan agregat perlu tercantum dalam GROUP BY.
Dari detail ke ringkasan
Query ini menghasilkan satu baris per kota, bukan satu baris per pelanggan. COUNT(*) menghitung semua baris dalam setiap kelompok.
SELECT category, AVG(price) AS average_price
FROM products
GROUP BY category;
Gunakan WHERE untuk menyaring baris sebelum dikelompokkan. Gunakan HAVING untuk menyaring kelompok sesudah agregasi.
SELECT city, COUNT(*) AS customer_count
FROM customers
GROUP BY city
HAVING COUNT(*) >= 2;
Coba sendiri
Hitung jumlah produk untuk setiap kategori, beri alias yang jelas, lalu urutkan kategori secara alfabetis.
Jebakan umum
Jangan memilih kolom detail seperti product_name bersama GROUP BY category tanpa menjelaskan agregasinya. Satu kelompok memiliki banyak nama produk, sehingga hasilnya tidak bermakna.
Practice
Latihan
01 EXERCISE
-
EXERCISE 01 / GUIDED_PRACTICE
Hitung produk per kategori
Tampilkan setiap kategori produk beserta jumlah produknya. Urutkan kategori secara alfabetis dan beri alias pada hasil hitungan.
- FOCUS
- GROUP BY
- DATASET
- E-Commerce
- ESTIMATED MINUTES
- 6
Practice workspace
Tulis dan jalankan query
Menyiapkan SQL runtime...
Dataset: E-Commerce. Query berjalan lokal di browser.
Hasil query
0 ROWS
Jalankan query untuk menampilkan hasil di sini.
Masuk untuk menandai latihan selesai.