Mengelompokkan Data dengan SQL GROUP BY
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.
Pasa artikel kali ini, kita akan fokus untuk membahas segala sesuatu yang berhubungan dengan statement GROUP BY. Yuk, simak pembahasannya!
1. Bentuk Umum SQL 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:
Kamu 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 : Bootcamp Data Analyst with SQL and Python
2. Cara Menggunakannya di SQL
Misalkan kita memiliki data penjualan di table Order seperti di bawah ini:
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.
3. Kombinasi GROUP BY & 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:
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:
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. Menggunakan 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 sebagai berikut:
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.
DQLab sendiri 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.
Untuk mendapatkan pengalaman belajar menarik, yuk ikuti Bootcamp Data Analyst with SQL and Python. Daftar sekarang dan kejar impianmu untuk menjadi praktisi data!