SQL - Klausul Group By
Halo teman-teman, para ahli SQL masa depan! Hari ini, kita akan mendalamkan salah satu alat paling kuat dalam kotak alat SQL kita: klausul GROUP BY. Sebagai guru komputer tetangga yang ramah, saya disini untuk menghidahkanmu dalam perjalanan ini, langkah demi langkah. Jadi, ambil minumannya yang favoritmu, duduk nyaman, dan mari kita embarkasi dalam perjalanan SQL yang menarik ini bersama!
Klausul GROUP BY di SQL
Bayangkan Anda sedang mengatur perpustakaan besar. Anda memiliki buku-buku tersebar di tempat, dan Anda ingin mengatur mereka menurut genre. Itu sebenarnya apa yang dilakukan klausul GROUP BY di SQL - itu membantu kita mengatur data kita ke dalam kelompok yang rapi dan logis.
Klausul GROUP BY digunakan untuk mengelompokkan baris yang memiliki nilai yang sama dalam kolom yang ditentukan. Hal ini sering digunakan dengan fungsi agregat untuk melakukan perhitungan pada setiap kelompok baris.
Mari kita mulai dengan contoh sederhana:
SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department;
Dalam query ini, kita mengelompokkan karyawan kita menurut departemen mereka dan menghitung berapa banyak karyawan ada di setiap departemen. Itu seperti bertanya, "berapa banyak buku yang kita punya di setiap genre?"
Klausul GROUP BY Dengan Fungsi Agregat
Sekarang, mari kita membuatnya lebih menarik. GROUP BY benar-benar terlihat bagus saat kita pasangnya dengan fungsi agregat. Fungsi agregat melakukan perhitungan pada set nilai dan mengembalikan satu hasil. Beberapa fungsi agregat umum adalah COUNT(), SUM(), AVG(), MAX(), dan MIN().
Berikut adalah tabel dari fungsi-fungsi ini dan penggunaannya:
Fungsi | Deskripsi |
---|---|
COUNT() | Menghitung jumlah baris |
SUM() | Menghitung jumlah total dari set nilai |
AVG() | Menghitung rata-rata dari set nilai |
MAX() | Mengembalikan nilai maksimum dalam set |
MIN() | Mengembalikan nilai minimum dalam set |
Mari kita lihat ini dalam aksi:
SELECT department,
COUNT(*) as employee_count,
AVG(salary) as avg_salary,
MAX(salary) as max_salary,
MIN(salary) as min_salary
FROM employees
GROUP BY department;
Query ini memberikan kita banyak informasi tentang setiap departemen: berapa banyak karyawan mereka punya, rata-rata gaji, gaji tertinggi, dan gaji terendah. Itu seperti mendapatkan laporan komprehensif tentang setiap genre di perpustakaan kita!
Klausul GROUP BY pada Kolom Tunggal
kadang-kadang, kita ingin fokus hanya pada satu aspek data kita. Misalnya, kita ingin tahu berapa banyak karyawan kita di setiap jabatan:
SELECT job_title, COUNT(*) as employee_count
FROM employees
GROUP BY job_title;
Query ini mengelompokkan karyawan kita menurut jabatan mereka dan menghitung berapa banyak orang dalam setiap jabatan. Itu seperti menghitung berapa banyak novel misteri, novel roman, dan novel fiksi ilmiah yang kita punya di perpustakaan.
Klausul GROUP BY Dengan Kolom Ganda
Tapi mengapa berhenti di satu kolom? Kita dapat mengelompokkan dengan menggunakan beberapa kolom untuk mendapatkan informasi yang lebih spesifik. Mari kita kelompokkan karyawan kita menurut departemen dan jabatan:
SELECT department, job_title, COUNT(*) as employee_count
FROM employees
GROUP BY department, job_title;
Query ini memberitahu kita berapa banyak karyawan kita di setiap jabatan dalam setiap departemen. Itu seperti mengatur bukunya pertama-tama menurut genre, dan kemudian menurut penulis dalam setiap genre.
Klausul GROUP BY Dengan Klausul ORDER BY
Sekarang, mari kita memberikan sedikit urutan pada hasil kita. Klausul ORDER BY membantu kita mengurutkan data yang terkelompokkan:
SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department
ORDER BY employee_count DESC;
Query ini mengelompokkan karyawan menurut departemen, menghitung mereka, dan kemudian mengurutkan hasilnya dalam urutan turun berdasarkan jumlah karyawan. Kita akan melihat departemen dengan karyawan terbanyak pertama.
Klausul GROUP BY Dengan Klausul HAVING
Akhirnya, mari kita bicarakan tentang klausul HAVING. Sementara WHERE menyaring baris sebelum mereka digabungkan, HAVING menyaring kelompok itu sendiri. Itu seperti mengatakan, "Tampilkan saya hanya genre dengan lebih dari 100 buku."
SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department
HAVING employee_count > 50;
Query ini hanya menampilkan departemen dengan lebih dari 50 karyawan. Itu adalah cara bagus untuk fokus pada departemen yang lebih besar atau, dalam analogi perpustakaan kita, genre yang lebih populer.
Dan itu adalah dia, teman-teman! Kita telah menjelajahi negeri GROUP BY, dari penggunaannya yang dasar ke aplikasi yang lebih kompleks dengan beberapa kolom, ORDER BY, dan klausul HAVING. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba query ini pada datasetmu sendiri.
SQL mungkin terlihat menakutkan pada awalnya, tapi dengan waktu dan latihan, Anda akan mengelompokkan dan mengagregatkan data seperti seorang ahli. Siapa tahu? Anda mungkin bahkan mulai melihat dunia dalam hal kelompok dan agregat! (Hanya jangan mencoba GROUP BY temanmu di pesta - yakinkan saya, itu tidak berjalan baik.)
Terus kode, terus belajar, dan yang paling penting, terus bersenang-senang dengan SQL!
Credits: Image by storyset