Pada materi Basis Data Part 10, pembahasan difokuskan pada penggunaan HAVING clause dalam SQL. HAVING digunakan untuk memfilter data setelah proses agregasi, sehingga sangat penting dalam pembuatan laporan dan analisis data berbasis kelompok (grouped data).
Materi ini melanjutkan pembahasan dari GROUP BY dan fungsi agregat seperti SUM, COUNT, dan AVG.
| WHERE | HAVING |
|---|---|
| Digunakan sebelum GROUP BY | Digunakan setelah GROUP BY |
| Tidak bisa memfilter hasil agregasi | Bisa memfilter hasil agregasi |
| Digunakan pada data mentah | Digunakan pada data hasil pengelompokan |
HAVING digunakan ketika kita ingin memfilter data berdasarkan hasil perhitungan agregat.
Contoh fungsi agregat yang sering digunakan bersama HAVING:
SUM()COUNT()AVG()MIN()MAX()
Soal: Tampilkan:
ordernumberitemscount(jumlah quantity)total(total penjualan)
SELECT
ordernumber,
SUM(quantityordered) AS itemscount,
SUM(quantityordered * priceeach) AS total
FROM orderdetails
GROUP BY ordernumber;SELECT
ordernumber,
SUM(quantityordered) AS itemscount,
SUM(quantityordered * priceeach) AS total
FROM orderdetails
GROUP BY ordernumber
HAVING SUM(quantityordered * priceeach) > 1000;SELECT
ordernumber,
SUM(quantityordered) AS itemscount,
SUM(quantityordered * priceeach) AS total
FROM orderdetails
GROUP BY ordernumber
HAVING
SUM(quantityordered * priceeach) > 1000
AND SUM(quantityordered) > 600;Soal: Tampilkan order dengan status Shipped dan total penjualan lebih dari 1500.
SELECT
o.ordernumber,
o.status,
SUM(od.quantityordered * od.priceeach) AS total_sales
FROM orders o
JOIN orderdetails od
ON o.ordernumber = od.ordernumber
WHERE o.status = 'Shipped'
GROUP BY o.ordernumber, o.status
HAVING SUM(od.quantityordered * od.priceeach) > 1500;HAVING clause sangat penting dalam SQL karena memungkinkan pengguna memfilter data berdasarkan hasil agregasi. Dengan memahami perbedaan WHERE dan HAVING, query SQL dapat ditulis dengan lebih tepat dan efisien, terutama untuk kebutuhan laporan dan analisis data.
Materi Part 10 ini menjadi pondasi penting sebelum masuk ke analisis data yang lebih kompleks.
- Modul Basis Data Part 10 β HAVING Clause
- Dokumentasi SQL