Learn
← Previous Next →

Hari 12: GROUP BY — Agregasi per Kelompok

55 min Last updated 25 Mar 2026

GROUP BY — Kelompokkan dan Ringkas

GROUP BY membagi baris menjadi kelompok-kelompok, lalu fungsi agregat dijalankan per kelompok.

-- Berapa pelanggan di setiap kota?
SELECT kota, COUNT(*) AS jumlah_pelanggan
FROM pelanggan
GROUP BY kota;

-- Total stok per kategori
SELECT kategori_id, SUM(stok) AS total_stok
FROM produk
GROUP BY kategori_id;

-- Rata-rata harga per kategori
SELECT kategori_id,
  COUNT(*) AS jumlah_produk,
  ROUND(AVG(harga), 0) AS rata_harga
FROM produk
GROUP BY kategori_id
ORDER BY rata_harga DESC;
⚠️ Aturan GROUP BY: setiap kolom di SELECT yang bukan fungsi agregat, harus ada di GROUP BY.
-- Multi kolom GROUP BY
SELECT kota, status, COUNT(*) AS jumlah
FROM pelanggan
GROUP BY kota, status
ORDER BY kota, status;

💡 Notice: Kolom yang di-GROUP BY harus muncul di SELECT.

Assignment

Tampilkan jumlah pesanan dan total pendapatan per status_pesanan (selesai, dikirim, pending). Urutkan dari jumlah pesanan terbanyak.

Expected output:

3 row(s) returned
SQL query.sql
Solution
Output
⏳ Loading DB...