Buat Akun DQLab & Akses Kelas Data Science Python, R, SQL, Excel GRATIS!

Belajar Group By SQL dengan Beberapa Fungsinya

Belajar Data Science di Rumah 31-Mei-2023
https://dqlab.id/files/dqlab/cache/f07d50dedaeed0e4d5051ccc5b03ef29_x_Thumbnail800.jpeg

Structured Query Language yang disingkat menjadi SQL menjadi salah satu bahasa pemrograman yang akan sering digunakan oleh para praktisi data. SQL ini digunakan untuk mengakses segala hal yang berhubungan dengan database, baik untuk membuat database, mengubah isinya, bahkan menghapus data.


Group By merupakan salah satu perintah yang ada dalam SQL, dimana fungsinya adalah untuk melakukan grouping atau pengelompokkan data. Tidak bisa dipungkiri, praktisi data pasti akan bertemu dengan keadaan yang mengharuskan untuk menghitung data berdasarkan grupnya.


Misalkan kita ingin menghitung penjualan selama bertahun-tahun dari berbagai provinsi, untuk bisa mendapatkan insight nya, maka kita bisa mengelompokkan data tersebut berdasarkan tahun atau bulan.


SQL Group By juga biasanya dipakai untuk fungsi agregat. Apa itu fungsi agregat dalam bahasa pemrograman SQL? Fungsi agregat adalah fungsi yang menentukan berbagai kumpulan nilai. Mulai dari jumlah, rata-rata, nilai minimum, nilai maksimum, dan lain-lain.


Selain fungsi agregat, SQL Group By juga bisa dikombinasikan dengan klausa Having. Klausa ini digunakan untuk membatasi kelompok baris yang dikembalikan hanya kepada mereka yang kondisinya BENAR.


Nah, kebetulan pada artikel kali ini, kita akan lebih membahas khusus seputar SQL Group By dengan kombinasi menggunakan klausa Having dan fungsi agregat. Yuk langsung aja kita sama-sama belajar bareng sahabat DQLab!


1. Fungsi Aggregate AVG() dan Group By

Dengan menggabungkan group by dan statement agregat kita bisa menghitung beberapa statistik untuk beberapa grup data, misalnya rata-rata, total, nilai minimum atau maksimum.


Misalkan kita memiliki tabel "students" dengan kolom-kolom "name", "age", dan "score". Kita ingin menghitung rata-rata nilai (score) untuk setiap usia (age) dari siswa-siswa tersebut. Berikut contoh query SQL-nya:

SELECT age, AVG(score) AS average_score

FROM students

GROUP BY age;

Dalam contoh di atas, kita menggunakan fungsi agregat AVG() untuk menghitung rata-rata nilai (score) pada setiap kelompok usia (age). Hasil query akan menampilkan kolom "age" dan kolom baru yang diberi nama "average_score" yang berisi rata-rata nilai untuk setiap kelompok usia.

Contoh hasil query:

age  | average_score

------ |--------------

18    | 85.5

20    | 76.8

22    | 92.3

Dalam contoh di atas, kita melihat rata-rata nilai (average_score) untuk siswa-siswa dalam kelompok usia yang berbeda.


Dengan menggunakan fungsi agregat AVG() dan sintaks GROUP BY, kita dapat menghitung rata-rata (atau fungsi agregat lainnya) dari kolom tertentu untuk setiap grup yang diinginkan, seperti menghitung rata-rata penjualan berdasarkan kategori produk, rata-rata tinggi siswa berdasarkan kelas, dan sebagainya.


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


2. Fungsi Aggregate COUNT() dan Group By

Misalkan kita memiliki tabel "orders" dengan kolom-kolom "order_id", "customer_id", dan "order_date". Kita ingin menghitung jumlah pesanan (order) yang dilakukan oleh setiap pelanggan (customer) berdasarkan ID pelanggan tersebut. Berikut contoh query SQL-nya:

SELECT customer_id, COUNT(order_id) AS total_orders

FROM orders

GROUP BY customer_id;

Dalam contoh di atas, kita menggunakan fungsi agregat COUNT() untuk menghitung jumlah pesanan (order_id) pada setiap kelompok pelanggan (customer_id). Hasil query akan menampilkan kolom "customer_id" dan kolom baru yang diberi nama "total_orders" yang berisi jumlah pesanan untuk setiap pelanggan.

Contoh hasil query:

customer_id | total_orders

-----------------|-------------

       1           |       5

       2           |       8

       3           |       3

Dalam contoh di atas, kita melihat jumlah pesanan (total_orders) yang dilakukan oleh setiap pelanggan (customer_id).


Dengan menggunakan fungsi agregat COUNT() dan sintaks GROUP BY, kita dapat menghitung jumlah (atau fungsi agregat lainnya) dari baris-baris tertentu untuk setiap grup yang diinginkan, seperti menghitung jumlah produk terjual berdasarkan kategori, jumlah siswa dalam setiap kelas, dan sebagainya.


3. Kombinasi GROUP BY dengan HAVING

HAVING digunakan untuk menggantikan WHERE dalam proses filter data saat menggunakan GROUP BY, dengan catatan datanya di agregasi. Penulisan HAVING harus dilakukan setelah GROUP BY.


Misalkan kita memiliki tabel "employees" dengan kolom-kolom "department", "salary", dan "age". Kita ingin menampilkan departemen-departemen yang memiliki rata-rata gaji (salary) di atas 5000 dan memiliki jumlah karyawan (jumlah baris) di atas 3. Berikut contoh query SQL-nya:


SELECT department, AVG(salary) AS average_salary, COUNT(*) AS total_employees

FROM employees

GROUP BY department

HAVING AVG(salary) > 5000 AND COUNT(*) > 3;m

Dalam contoh di atas, kita menggunakan kombinasi GROUP BY dengan HAVING. Pertama, kita mengelompokkan data karyawan berdasarkan departemen (department) menggunakan GROUP BY department. Kemudian, menggunakan HAVING, kita menentukan kondisi bahwa hanya departemen yang memiliki rata-rata gaji (average_salary) di atas 5000 dan jumlah karyawan (total_employees) di atas 3 yang akan ditampilkan.

Contoh hasil query:

department | average_salary | total_employees

----------------|----------------------|----------------

Sales          | 5500                  | 5

Marketing   | 5200                  | 4

Dalam contoh di atas, hanya departemen "Sales" dan "Marketing" yang memenuhi kondisi yang ditentukan dalam HAVING, yaitu memiliki rata-rata gaji di atas 5000 dan jumlah karyawan di atas 3.


Dengan menggunakan kombinasi GROUP BY dengan HAVING, kita dapat mengelompokkan data berdasarkan suatu kriteria dan kemudian melakukan seleksi lebih lanjut berdasarkan kondisi yang ditentukan dalam HAVING. Hal ini berguna ketika kita ingin menampilkan subset data yang memenuhi kondisi tertentu setelah dilakukan pengelompokan.


4. Kombinasi GROUP BY dan WHERE

Di dalam beberapa keadaan, terkadang kita akan membutuhkan filter untuk menampilkan data yang diperlukan saja. Untuk melakukan filtering, kita bisa memanfaatkan klausa WHERE.


Misalkan kita memiliki tabel "orders" dengan kolom-kolom "order_id", "customer_id", "order_date", dan "total_amount". Kita ingin menampilkan total jumlah pesanan (total_amount) yang dilakukan oleh pelanggan dengan ID tertentu (misalnya, customer_id = 1) berdasarkan bulan tertentu (misalnya, order_date = '2023-01'). Berikut contoh query SQL-nya:

SELECT SUM(total_amount) AS total_orders

FROM orders

WHERE customer_id = 1 AND MONTH(order_date) = 1

GROUP BY customer_id;

Dalam contoh di atas, kita menggunakan kombinasi GROUP BY dengan WHERE. Pertama, kita menggunakan WHERE untuk memfilter baris-baris data yang hanya memiliki customer_id = 1 dan order_date pada bulan tertentu (misalnya, Januari dengan MONTH(order_date) = 1). Kemudian, kita menggunakan GROUP BY customer_id untuk mengelompokkan data berdasarkan ID pelanggan. Akhirnya, menggunakan fungsi agregat SUM(), kita menghitung total jumlah pesanan (total_amount) untuk setiap pelanggan.


Contoh hasil query:

total_orders

------------

2350

Dalam contoh di atas, total jumlah pesanan (total_orders) yang dilakukan oleh pelanggan dengan ID 1 pada bulan Januari adalah 2350.


Dengan menggunakan kombinasi GROUP BY dengan WHERE, kita dapat mengelompokkan data berdasarkan suatu kriteria tertentu dan kemudian melakukan seleksi lebih lanjut dengan menggunakan kondisi dalam WHERE. Hal ini memungkinkan kita untuk memfilter data sebelum dilakukan pengelompokan.


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


Operator-operator di atas sering kali dikombinasikan dengan berbagai statement SQL yang lain. Yuk belajar SQL lebih mendalam bersama DQLab! DQLab adalah platform belajar online yang berfokus pada pengenalan Data Science dan Artificial Intelligence dengan menggunakan bahasa pemrograman populer seperti R dan Python.


Menariknya, DQLab adalah platform edukasi pertama yang mengintegrasi fitur ChatGPT yang memudahkan beginner untuk mengakses informasi mengenai data science secara lebih mendalam.


DQLab juga menggunakan metode HERO yaitu Hands-On, Experiential Learning & Outcome-based, yang dirancang ramah untuk pemula. Jadi sangat cocok untuk kamu yang belum mengenal data science sama sekali.


Untuk bisa merasakan pengalaman belajar yang praktis dan aplikatif, yuk sign up sekarang di DQLab.id atau ikuti training corporate DQLab dengan klik tautan https://dqlab.id/b2b berikut untuk informasi lebih lengkapnya! Ingin akses semua modul DQLab? Yuk signup sekarang!



Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Buat Akun


Atau

Sudah punya akun? Login