COUNT, SUM, AVG, GROUP BY & HAVING
60 min
Last updated 24 Mar 2026
Fungsi Agregat
Fungsi agregat menghitung ringkasan dari banyak baris data menjadi satu nilai.
2.1 COUNT, SUM, AVG, MIN, MAX
-- Hitung total pelanggan
SELECT COUNT(*) AS total_pelanggan FROM pelanggan;
-- Total nilai semua pesanan
SELECT SUM(total_harga) AS total_penjualan FROM pesanan;
-- Rata-rata harga produk
SELECT AVG(harga) AS rata_harga FROM produk;
-- Produk termahal dan termurah
SELECT MAX(harga) AS termahal, MIN(harga) AS termurah FROM produk;
2.2 GROUP BY — Kelompokkan Data
GROUP BY mengelompokkan baris yang memiliki nilai sama pada kolom tertentu.
-- Jumlah pelanggan per kota
SELECT kota, COUNT(*) AS jumlah_pelanggan
FROM pelanggan
GROUP BY kota;
-- Total penjualan per metode bayar
SELECT metode_bayar, SUM(total_harga) AS total
FROM pesanan
GROUP BY metode_bayar
ORDER BY total DESC;
2.3 HAVING — Filter setelah GROUP BY
HAVING seperti WHERE, tapi digunakan setelah GROUP BY.
-- Kota dengan lebih dari 2 pelanggan
SELECT kota, COUNT(*) AS jumlah
FROM pelanggan
GROUP BY kota
HAVING COUNT(*) > 2
ORDER BY jumlah DESC;
-- Kategori dengan rata-rata harga di atas 500rb
SELECT kategori_id, AVG(harga) AS avg_harga
FROM produk
GROUP BY kategori_id
HAVING AVG(harga) > 500000;
💡Urutan eksekusi SQL: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
💡
Notice: Gunakan fungsi COUNT, SUM, AVG, GROUP BY, dan HAVING.
Assignment
Tampilkan total penjualan (SUM total_harga) per status_pesanan, hanya tampilkan yang totalnya di atas 10 juta, urutkan dari terbesar.
Expected output:
-- Hasil berisi: selesai (total tertinggi), dikirim, dan mungkin lainnya
SQL
query.sql
Solution
Output
⏳ Loading DB...