Skip to content

deuscoco/SQL-part-10

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 

Repository files navigation

πŸ“˜ Basis Data Part 10 – HAVING Clause dalam SQL

πŸ“Œ Pendahuluan

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.


πŸ” Perbedaan WHERE dan HAVING

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

🧠 Konsep Dasar HAVING

HAVING digunakan ketika kita ingin memfilter data berdasarkan hasil perhitungan agregat.

Contoh fungsi agregat yang sering digunakan bersama HAVING:

  • SUM()
  • COUNT()
  • AVG()
  • MIN()
  • MAX()

πŸ“ Quiz & Jawaban – Basis Data Part 10

βœ… Quiz 1 – GROUP BY

Soal: Tampilkan:

  • ordernumber
  • itemscount (jumlah quantity)
  • total (total penjualan)
SELECT
    ordernumber,
    SUM(quantityordered) AS itemscount,
    SUM(quantityordered * priceeach) AS total
FROM orderdetails
GROUP BY ordernumber;

βœ… Quiz 2 – HAVING Total Sales > 1000

SELECT
    ordernumber,
    SUM(quantityordered) AS itemscount,
    SUM(quantityordered * priceeach) AS total
FROM orderdetails
GROUP BY ordernumber
HAVING SUM(quantityordered * priceeach) > 1000;

βœ… Quiz 3 – HAVING Total > 1000 dan Itemscount > 600

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;

βœ… Quiz 4 – JOIN + HAVING

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;

πŸ“Š Kesimpulan

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.


πŸ“š Referensi

  • Modul Basis Data Part 10 – HAVING Clause
  • Dokumentasi SQL

About

Memahami SQL dan Openrefine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors