SQL - Klausul Group By
Hai sana, para nelayan SQL masa depan! Hari ini, kita akan mendalami salah satu alat paling kuat di dalam kotak alat SQL kita: klausul GROUP BY. Sebagai guru komputer tetangga yang ramah, saya di sini untuk mengarahkan Anda dalam perjalanan ini, langkah demi langkah. Jadi, ambil minuman favorit Anda, duduk nyaman, dan mari kita embarkasi dalam petualangan SQL yang menarik bersama!
Klausul GROUP BY SQL
Imajinasikan Anda sedang mengatur perpustakaan besar. Anda memiliki buku-buku tersebar di seluruh 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. Biasanya digunakan bersamaan 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 dan menghitung berapa banyak karyawan yang ada di setiap departemen. Itu seperti bertanya, "Berapa banyak buku yang kita punyai di setiap genre?"
Klausul GROUP BY Dengan Fungsi Agregat
Sekarang, mari kita menambahkan sedikit keadaan. GROUP BY benar-benar bercahaya saat kita pasangkannya dengan fungsi agregat. Fungsi agregat melakukan perhitungan pada set of nilai dan mengembalikan hasil tunggal. 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, gaji rata-rata mereka, dan gaji tertinggi dan terendah. Itu seperti mendapatkan laporan komprehensif tentang setiap genre dalam perpustakaan kita!
Klausul GROUP BY Pada Kolom Tunggal
kadang-kadang, kita ingin fokus hanya pada satu aspek dari data kita. mari kita katakan kita ingin tahu berapa banyak karyawan kita di setiap peran:
SELECT job_title, COUNT(*) as employee_count
FROM employees
GROUP BY job_title;
Query ini mengelompokkan karyawan kita menurut judul pekerjaan dan menghitung berapa banyak orang di setiap peran. Itu mirip dengan menghitung berapa banyak novel misteri, novel roman, dan novel fiksi ilmiah yang kita punya dalam perpustakaan.
Klausul GROUP BY Dengan Kolom Ganda
Tetapi mengapa berhenti di satu kolom? Kita dapat mengelompokkan dengan beberapa kolom untuk mendapatkan informasi yang lebih spesifik. mari kita kelompokkan karyawan kita menurut departemen dan judul pekerjaan:
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 judul pekerjaan dalam setiap departemen. Itu seperti mengatur bukunya pertama-tama menurut genre, dan kemudian menurut pengarang dalam setiap genre.
Klausul GROUP BY Dengan Klausul ORDER BY
Sekarang, mari kita menambahkan sedikit urutan pada hasil kita. Klausul ORDER BY membantu kita mengurutkan data kelompok kita:
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 menurun berdasarkan jumlah karyawan. Kita akan melihat departemen dengan karyawan terbanyak pertama. Itu seperti mengatur genre buku dari yang paling populer ke yang paling sedikit.
Klausul GROUP BY Dengan Klausul HAVING
Terakhir namun bukan terkecil, mari kita bicarakan tentang klausul HAVING. Sedangkan 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 cara yang bagus untuk fokus pada departemen yang lebih besar atau, dalam analogi perpustakaan kita, genre yang lebih populer.
Dan itu adalah nya, 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 dataset Anda sendiri.
SQL mungkin tampak menakutkan pada awal, tetapi dengan waktu dan latihan, Anda akan mengelompokkan dan mengagregatkan data seperti seorang pro. Siapa tahu? Anda mungkin mulai melihat dunia dalam hal kelompok dan agregat! (Hanya jangan mencoba GROUP BY teman Anda di pesta - percayalah saya, itu tidak berjalan baik.)
Terus coding, terus belajar, dan terutama, terus bersenang-senang dengan SQL!
Credits: Image by storyset