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

Tutorial SQL GROUP BY untuk Mengelompokkan Data

Belajar Data Science di Rumah 15-Desember-2022
https://dqlab.id/files/dqlab/cache/5813929e45795a6d4ad0095b29c463b7_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. Fungsi-fungsi yang bisa dilakukan oleh SQL akan dikelompokkan ke dalam dua kelompok besar, yaitu DDL (Data Definition Language) yang lebih mengarah ke proses pembuatan database dan DML (Data Manipulation Language) yang lebih mengarah ke proses manipulasi data.


GROUP BY merupakan salah satu statement 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. 


Dalam artikel ini, kita akan fokus untuk membahas segala sesuatu yang berhubungan dengan statement GROUP BY. Ingin tahu lebih lanjut? Yuk, simak pembahasannya!


1.Query GROUP BY

Sebelum mulai masuk ke contoh penggunaan statement GROUP BY, kita harus mengetahui bentuk umum dari query GROUP BY terlebih dahulu. Berikut adalah bentuk umumnya:


SQL


Kita bisa menggunakan bentuk umum tersebut dengan memperhatikan beberapa catatan:

  • Penggunaan GROUP BY yang dilakukan bersamaan dengan SELECT, maka kolom yang digunakan pada GROUP BY statement juga harus masuk pada kolom yang di SELECT.

  • Ketika kita menggunakan statement WHERE, maka GROUP BY harus ditulis setelah WHERE, namun jika tidak maka GROUP BY bisa langsung ditulis setelah FROM.

  • GROUP BY harus ditulis terlebih dahulu saat kita menggunakan statement ORDER BY.


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


2.Penggunaan GROUP BY di SQL

Misalkan kita memiliki data penjualan di table Order seperti di bawah ini:


SQL


Dari data yang ada, kita ingin melihat berapa banyak jumlah penjualan dari masing-masing item. Maka kita bisa menggunakan statement GROUP BY untuk item. Berikut adalah query nya:

SELECT item, SUM(amount) AS total

FROM Orders

GROUP BY item;

Dari query tersebut, kita menjumlahkan AMOUNT dengan fungsi SUM kemudian di aliaskan dengan menggunakan AS sebagai total. Sehingga di outputnya, judul dari kolomnya akan menjadi item dan total.


SQL


3.Kombinasi GROUP BY dengan JOIN SQL

Selanjutnya kita akan melihat jika kita menggunakan GROUP BY jika kita menggabung 2 table. Dalam hal ini kita akan menggabungkan table order yang sudah digunakan sebelumnya dengan table Customers. Berikut adalah data dari table Customers:


SQL


Misalkan kita ingin melihat total order dari masing-masing customer, maka kita bisa menggunakan query berikut:


SELECT Customers.customer_id, Customers.first_name, Count(Orders.order_id) AS order_count

FROM Customers

LEFT JOIN Orders

ON Customers.customer_id = Orders.customer_id

GROUP BY Customers.customer_id;

Hasilnya akan seperti gambar berikut:


SQL


Karena kita menggunakan LEFT JOIN pda table Customer, sehingga semua customer_id akan dimunculkan. Padahal customer_id = 5 tidak ada di table Order, sehingga hasil di order_count nya adalah 0.


4.Penggabungan 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. 


Dari table Customers tadi, kita ingin menampilkan data minimum umur dari masing-masing customer di setiap negara, namun akan di filter hanya untuk negara yang customernya lebih dari 1. Berikut query yang bisa digunakan:


SELECT country, MIN(age) AS age_minimum, COUNT(customer_id) AS total_customer

FROM Customers

GROUP BY country

HAVING COUNT(customer_id) > 1;

Untuk bisa menampilkan negara dengan customer lebih dari 1, maka kita bisa memanfaatkan fungsi COUNT yang digunakan untuk menghitung jumlah customer dan digabungkan dengan HAVING Clause.

Hasilnya akan sebagai berikut:


SQL


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


Tertarik untuk belajar SQL lebih lanjut? Kamu gak perlu bingung harus belajar SQL dimana karena DQLab juga menyediakan modul SQL yang sangat cocok bagi pemula karena membahas hal-hal yang bersifat fundamental. Selain itu, kamu juga bisa memanfaatkan live code editor yang telah disediakan sehingga kamu tidak repot mengurus proses instalasi software dan bisa fokus pada materi. Agar bisa mengaksesnya, kamu cukup berlangganan untuk menjadi member premium di DQLab

Yuk, tunggu apa lagi? Sekarang giliran mu!

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