Filtering Data SQL: Perbedaan WHERE vs HAVING (Wajib Dipahami Data Analyst)
Kalau kamu lagi belajar SQL untuk Data Analyst, ada dua keyword yang kelihatannya mirip tapi fungsinya beda jauh:
👉 WHERE
👉 HAVING
Banyak pemula ketuker pakainya — dan ini sering jadi jebakan di technical test.
Di artikel ini kita bahas:
✅ Apa itu WHERE
✅ Apa itu HAVING
✅ Perbedaan WHERE vs HAVING
✅ Contoh nyata
✅ Kapan harus pakai yang mana
Santai… kita kupas pelan-pelan 🔥
Apa Itu WHERE?
WHERE digunakan untuk memfilter data sebelum proses agregasi.
Artinya:
👉 Data difilter dulu
👉 Baru dihitung (SUM, COUNT, AVG, dll)
Contoh:
Misalnya kita punya tabel sales:
| customer | region | amount |
|---|---|---|
| A | Jakarta | 100 |
| B | Bandung | 200 |
| C | Jakarta | 300 |
Kalau kita mau ambil transaksi dari Jakarta saja:
Hasil:
| customer | region | amount |
|---|---|---|
| A | Jakarta | 100 |
| C | Jakarta | 300 |
👉 WHERE bekerja di level baris (row).
Apa Itu HAVING?
HAVING digunakan untuk memfilter hasil agregasi.
Artinya:
👉 Data dihitung dulu
👉 Baru difilter
HAVING biasanya dipakai barengan dengan:
-
GROUP BY
-
SUM()
-
COUNT()
-
AVG()
Contoh:
Kita mau lihat region yang total penjualannya lebih dari 300:
Hasil:
| region | total_sales |
|---|---|
| Jakarta | 400 |
👉 HAVING bekerja setelah GROUP BY.
Perbedaan WHERE vs HAVING (Ringkas & Jelas)
| WHERE | HAVING |
|---|---|
| Filter sebelum agregasi | Filter setelah agregasi |
| Bisa tanpa GROUP BY | Biasanya pakai GROUP BY |
| Tidak bisa pakai SUM/COUNT | Bisa pakai SUM/COUNT |
| Level baris | Level hasil grup |
Kalau mau disingkat:
🧠WHERE = filter data mentah
🧠HAVING = filter hasil perhitungan
Contoh Kombinasi WHERE + HAVING (Real Case)
Misalnya:
👉 Kita mau ambil transaksi tahun 2024
👉 Lalu cari customer dengan total belanja > 500
Urutannya:
-
WHERE → filter tahun 2024
-
GROUP BY → grup per customer
-
SUM → hitung total
-
HAVING → filter hasil total
Ini pola yang sering banget muncul di dunia kerja Data Analyst.
Kesalahan Umum Pemula
❌ Pakai WHERE untuk agregasi:
Ini pasti error.
Karena:
👉 WHERE belum tahu hasil SUM
👉 SUM baru ada setelah GROUP BY
👉 Maka harus pakai HAVING
Kesimpulan
Kalau kamu masih bingung, ingat satu kalimat ini:
🔥 WHERE untuk filter data awal
🔥 HAVING untuk filter hasil perhitungan
Kalau sudah paham ini, 50% soal SQL filtering langsung aman 😎
Kalau mau, next article kita lanjut:
✅ GROUP BY lebih dalam
✅ JOIN untuk Data Analyst
✅ SQL case study versi real perusahaan
✅ SQL interview question + solusi

