JULY SPECIAL ! DISKON 96%
Belajar Data Science Bersertifikat, 12 Bulan hanya 180K!
1 Hari 12 Jam 54 Menit 18 Detik

SQL GROUP BY dengan HAVING untuk Filtering Data

Belajar Data Science di Rumah 14-Februari-2024
https://dqlab.id/files/dqlab/cache/2-longtail-rabu-06-2024-02-12-163009_x_Thumbnail800.jpg

SQL adalah bahasa yang digunakan untuk menganalisis data yang berada dalam database. Proses analisis data dengan menggunakan bahasa SQL, praktisi data kerap memanfaatkan fitur bawaan bahasa ini untuk mempermudah pekerjaannya. Misalnya saja GROUP BY yang digunakan untuk mengelompokkan row data yang memiliki nilai yang sama ke dalam satu kelompok. Hal ini dapat mempermudah praktisi data dalam melakukan analisis per kelompok.


Dalam SQL, penggunaan fitur yang ada bisa dikombinasikan dengan fitur lainnya. Untuk GROUP BY sendiri, kita bisa mengkombinasikannya dengan HAVING yang digunakan untuk memfilter hasil dari operasi GROUP BY. HAVING sebenarnya mirip dengan WHERE yang berfungsi untuk memfilter data, hanya saja HAVING khusus untuk memfilter hasil agregasi.


Dalam artikel ini, kita akan melihat bagaimana menggunakan HAVING dalam kaitannya dengan GROUP BY untuk melakukan filtering data. Yuk, intip bareng penjelasannya!


1. Konsep Dasar SQL GROUP BY dan HAVING

SQL

Sebelum kita masuk ke dalam penggunaan HAVING, mari kita pahami terlebih dahulu konsep dasar dari GROUP BY. GROUP BY pada dasarnya dapat digunakan untuk mengelompokkan row data yang memiliki nilai yang sama berdasarkan kolom tertentu dalam tabel. Setelah data dikelompokkan, kita dapat menerapkan fungsi agregat seperti COUNT, SUM, AVG, MIN, dan MAX untuk menghitung statistik pada setiap kelompok.


Sementara HAVING berguna untuk memfilter hasil dari operasi GROUP BY. HAVING ini persis bekerja serupa dengan klausa WHERE, namun berlaku untuk kelompok data, bukan untuk masing masing baris. Sehingga HAVING ini memungkinkan kita untuk memfilter hasil berdasarkan hasil dari fungsi agregat.


Baca juga : Saatnya Belajar SQL, Kenali Rekomendasi Query SQL Bagi Pemula


2. Contoh Penggunaan HAVING

SQL

Misalkan kita memiliki tabel ‘orders’ yang berisi informasi tentang pesanan pelanggan, termasuk kolom ‘customer_id’ dan ‘total_amount’. Kita ingin mengelompokkan pesanan berdasarkan `customer_id` dan kemudian memfilter hasil untuk hanya menyertakan pelanggan yang memiliki total jumlah pesanan lebih dari $1000. Maka query SQL nya harus menggunakan GROUP BY dengan HAVING, seperti berikut ini:


SELECT customer_id, SUM(total_amount) AS total_spent
FROM orders
GROUP BY customer_id
HAVING SUM(total_amount) > 1000;


Dalam query di atas, penggunaan GROUP BY bertujuan untuk mengelompokkan pesanan berdasarkan ‘customer_id’. Kemudian, kita menggunakan HAVING untuk memfilter hasil dan hanya menyertakan pelanggan yang memiliki total jumlah pesanan lebih dari $1000.


3. Kombinasi dengan Fungsi Agregat

SQL

Penggunaan HAVING seringkali dikombinasikan dengan fungsi agregat untuk melakukan filtering data yang lebih kompleks. Misalnya, kita dapat memfilter kelompok data berdasarkan rata-rata atau jumlah total, seperti dalam contoh di bawah ini:

SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 50000;


Dalam contoh ini, kita mengelompokkan data karyawan berdasarkan ‘department_id’, kemudian menggunakan HAVING untuk memfilter kelompok data di mana rata-rata gaji karyawan lebih dari $50.000.


4. Tips Penggunaan HAVING dengan Bijak

SQL

Ketika menggunakan HAVING, ada beberapa tips yang perlu diperhatikan guna membuat query yang kita tulis dapat berjalan secara efektif dan efisien untuk memastikan kueri Anda berjalan efisien, yaitu:

  • Untuk data yang bisa di-filter dengan WHERE,  ada baiknya kita menghindari penggunaan HAVING. Gunakan WHERE untuk memfilter baris individu dan HAVING untuk memfilter kelompok data setelah operasi GROUP BY.

  • HAVING selalu berlaku setelah operasi GROUP BY. Sehingga pastikan bahwa kita telah mengelompokkan data sebelum menerapkan HAVING. 

  • Jika memungkinkan, buatlah indeks pada kolom yang digunakan dalam operasi GROUP BY dan HAVING guna mengoptimalkan query yang akan dijalankan. 


Baca juga : Bootcamp Data Analyst with SQL and Python


GROUP BY dan HAVING termasuk fundamental dari SQL yang harus dikuasai dengan baik. Penggunaan kedua klausa ini secara bersamaan dapat membantu menyelesaikan analisis data yang lebih dalam dan kompleks dalam SQL. Kamu juga bisa memulai proses belajar SQL dengan mempelajari tentang HAVING dan GROUP BY terlebih dahulu.


Gak perlu bingung harus belajar SQL dimana karena DQLab juga menyediakan modul SQL yang sangat cocok bagi pemula. DQLab merupakan platform belajar online yang berfokus pada pengenalan Data Science & Artificial Intelligence (AI) dengan menggunakan bahasa pemrograman populer, serta platform edukasi pertama yang mengintegrasi fitur Chat GPT.  Selain itu DQLab juga menggunakan metode HERO yaitu Hands-On, Experiential Learning & Outcome-based, yang dirancang ramah untuk pemula. 


Selain itu, Bootcamp Data Analyst with SQL and Python juga termasuk kelas yang direkomendasikan bagi pemula yang ingin melakukan pembelajaran data untuk menjadi seorang Data Analyst. Tentunya nanti kita akan dihadapkan dengan study case yang bisa menambah portfolio data.


Untuk mendapatkan pengalaman belajar menarik, buruan sign up di DQLab. Daftar sekarang dan kejar impianmu untuk menjadi Data Analyst!


Penulis : Gifa Delyani Nursyafitri


Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Buat Akun


Atau

Sudah punya akun? Login