Lewati ke konten utama
SQL Fundamentals

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

  1. 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.