Friday, February 13, 2026

Menjadi Data Analyst dari Nol (Part 21)


 

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:

customerregionamount
AJakarta100
BBandung200
CJakarta300

Kalau kita mau ambil transaksi dari Jakarta saja:

SELECT * FROM sales WHERE region = 'Jakarta';

Hasil:

customerregionamount
AJakarta100
CJakarta300

👉 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:

SELECT region, SUM(amount) AS total_sales FROM sales GROUP BY region HAVING SUM(amount) > 300;

Hasil:

regiontotal_sales
Jakarta400

👉 HAVING bekerja setelah GROUP BY.

Perbedaan WHERE vs HAVING (Ringkas & Jelas)

WHEREHAVING
Filter sebelum agregasiFilter setelah agregasi
Bisa tanpa GROUP BYBiasanya pakai GROUP BY
Tidak bisa pakai SUM/COUNTBisa pakai SUM/COUNT
Level barisLevel 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

SELECT customer, SUM(amount) AS total_spent FROM sales WHERE year = 2024 GROUP BY customer HAVING SUM(amount) > 500;

Urutannya:

  1. WHERE → filter tahun 2024

  2. GROUP BY → grup per customer

  3. SUM → hitung total

  4. HAVING → filter hasil total

Ini pola yang sering banget muncul di dunia kerja Data Analyst.

Kesalahan Umum Pemula

❌ Pakai WHERE untuk agregasi:

WHERE SUM(amount) > 500

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

Bagikan

Jangan lewatkan

Menjadi Data Analyst dari Nol (Part 21)
4/ 5
Oleh

Subscribe via email

Suka dengan artikel di atas? Tambahkan email Anda untuk berlangganan.