Tutorial SQL Group By dan Having Praktis Dicoba
KEJUTAN PAYDAY - DISKON 98%
Belajar Data Bersertifikat 12 Bulan hanya 180K!
0 Hari 3 Jam 30 Menit 17 Detik

Tutorial SQL Group By dan Having Praktis Dicoba

Belajar Data Science di Rumah 22-Februari-2023
https://dqlab.id/files/dqlab/cache/a6a8628444e44bc7b0bb8cc693b7e2ed_x_Thumbnail800.jpeg
Follow Instagram dan LinkedIn kami untuk info karir dan topik menarik

SQL menjadi salah satu tools yang perlu dikuasai oleh praktisi data karena memudahkan mereka untuk dapat mengakses data secara spesifik dalam sistem manajemen. SQL juga dilengkapi dengan beragam pernyataan, klausa, serta fungsi sesuai kebutuhan. Namun perlu diingat bahwa penggunaannya pun juga memiliki aturan. Belum tentu fungsi atau klausa dapat diaplikasikan bersamaan. 


Salah satu klausa SQL yang sering digunakan adalah Group By dan Having. Keduanya memiliki fungsi yang berbeda dan aturan tersendiri. Sebagai contoh, Having digunakan untuk filter data yang membutuhkan fungsi agregat. Sedangkan Group By tidak bisa digunakan bersamaan dengan fungsi agregat. Seperti apa detail fungsi Group By dan Having? Langsung simak yuk pembahasan dan tutorial praktis yang ada di bawah ini!


1. Penggunaan SQL Group By

Group By sering digunakan bersamaan dengan fungsi agregat seperti MAX, SUM, AVG untuk mengelompokkan hasil output yang dibutuhkan menjadi satu atau lebih kolom. Secara singkat, artinya Group By digunakan bersama SELECT untuk membuat sejumlah kelompok hasil query.


Group By akan mengelompokkan sejumlah baris yang memiliki nilai sama dengan spesifikasi yang diinginkan. Sintaks umum Group By adalah sebagai berikut.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv1-2023-07-27-100008.png

Misalkan kalian memiliki tabel produk seperti berikut ini. 

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv2-2023-07-27-100033.png

Kemudian kalian ingin menampilkan kolom produk dan jumlah pesanan berdasarkan kelompok produknya, maka bisa dikatakan kalian akan menggunakan Group By produk. Maka hasilnya nanti akan seperti berikut.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv3-2023-07-27-100050.png

2. Penggunaan SQL Having

Having merupakan perintah yang dapat digunakan untuk mengelompokan data sesuai dengan kondisi tertentu. Having digunakan karena adanya perintah WHERE yang tidak dapat digabungkan dengan fungsi agregat. Having hanya bisa digunakan setelah adanya perintah Group By. Sintaks umum Having adalah sebagai berikut.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv4-2023-07-27-100115.png

Perhatikan kembali tabel produk sebelumnya.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv5-2023-07-27-100135.png

Misalkan kalian ingin menampilkan kolom produk dan jumlah pesanan berdasarkan kelompok produknya. Kemudian secara spesifik ingin menampilkan jumlah pesanan yang lebih dari 20. Maka nantinya output yang didapatkan seperti berikut.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv6-2023-07-27-100154.png

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


3. Contoh SQL Group By dan Having 

Supaya lebih paham dengan penggunaan dan perbedaannya, yuk kita coba praktik langsung. Berikut data yang dimiliki.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv7-2023-07-27-100214.png

Kemudian coba tuliskan query berikut ini.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv8-2023-07-27-100233.png

Maksud dari query tersebut adalah:

  • Akan dipilih Country dan hasil agregat COUNT untuk CustomerID dengan nama Number_of_cust sebagai kolom output.

  • Hasil output nanti akan dikelompokkan berdasarkan Country.

  • Hasil output hanya menunjukkan Number_of_cust yang bernilai lebih dari 5.

Sehingga diperoleh output seperti berikut ini.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv82-2023-07-27-100252.png

Perhatikan output di bawah ini jika tidak ditambahkan klausa HAVING. Tentu hasilnya jauh lebih banyak karena tidak diterapkan filter.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv83-2023-07-27-100314.png

Selanjutnya mari kita cek mengapa harus menggunakan HAVING ketika memfilter dengan fungsi agregat, bukan dengan WHERE.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv84-2023-07-27-100336.png

Tentunya akan ada peringatan error, karena WHERE tidak dapat digunakan bersamaan dengan fungsi agregat.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv85-2023-07-27-100353.png

Baca juga : Catat! Ini 3 Keuntungan Belajar SQL dalam Mengolah Data


4. Perbedaan Fungsi Keduanya

Setelah memahami penjelasan umum dan contoh penggunaannya, tentu mudah untuk membedakannya kan? Supaya lebih ringkas, berikut perbedaan fungsi dan penggunaan Group By dan Having.

https://dqlab.id/files/dqlab/file/data-web-1/data-user-9/postgroup/0f0327126cebe99dff31890ba2cd7777/hv9-2023-07-27-100412.png

Penjelasan di atas hanya memberikan gambaran umum tentang fungsi Group By dan Having. Sedangkan secara praktik di dunia kerja, masih ada banyak fungsi yang harus diaplikasikan. Nah Sahabat DQ perlu mempelajari juga beragam fungsi lainnya. Untuk kalian yang bingung harus belajar dari mana, DQLab menjadi solusi yang tepat. Modul pembelajaran sangat ramah bagi pemula karena dikemas dengan bahasa yang sederhana dan terstruktur dari tingkat kesulitannya. Yuk segera Sign Up di website untuk menikmati pembelajaran yang mudah dan menyenangkan!

Penulis : Dita Feby 

Editor : Annissa Widya  

Mulai Belajar
SQL Sekarang
Bersama DQLab

Buat Akun Belajar & Mulai Langkah
Kecilmu Mengenal SQL

Buat Akun


Atau

Sudah punya akun? Login