Selamat Tahun Baru 2018 Masehi. Dengan bertambahnya tahun, semoga kita menjadi insan yang lebih baik.

Monday, 8 January 2018

Saat kita menampilkan data hasil query, adakalanya data perlu dikelompokkan berdasarkan kriteria tertentu. Misalkan, menampilkan jumlah guru berdasarkan gender-nya, jumlah guru berdasarkan tempat lahirnya, menampilkan nama pelajaran berdasarkan jumlah jam ajarnya, dan masih banyak lagi.

Agar data tampil sesuai dengan kondisi atau kriteria yang kita tentukan sebagaimana contoh kasus di atas, kita dapat menggunakan GOUP BY. Penggunaannya, GROUP BY diletakkan di belakang pada perintah SELECT, biasanya setelah WHERE jika ada clause WHERE-nya.

Tidak usah berpanjang lebar, kita langsung ke contoh penggunaannya ya. Untuk database kami menggunakan database penilaian siswa dan tool-nya adalah MySQL Workbench. Berikut contoh-contoh kasus penggunaan GROUP BY :
SELECT jkgur, count(jkgur) FROM dbku.guru GROUP BY jkgur;
Maksudnya : tampilkan gender dan hitung per gender-nya dari table guru lalu kelompokkan berdasarkan data gendernya.

Jika tanpa GROUP BY maka tampilannya akan seperti berikut :


SELECT nmmapel, count(guru_idguru) from pelajaran group by guru_idguru;
Artinya : tampilkan data -nama pelajaran dan hitung id guru yang mengajarnya- dari table pelajaran dengan dikelompokkan berdasarkan id guru yang mengajar.

Jika tanpa GROUP BY, akan tampil sebagaimana gambar di bawah ini :

select pobguru, count(pobguru) from guru group by  pobguru;
Maksudnya : menampilkan data tempat lahir guru dan berapa orang guru yang lahir di sana, tampilan data dikelompokkan berdasarkan tempat lahir.

select count(pelajaran.nmmapel), kelas.nmkelas from pelajaran, kelas where pelajaran.mapelkls_idkelas = kelas.idkelas group by kelas.nmkelas;
Maksudnya menampilkan jumlah pelajaran sebuah kelas beserta nama kelasnya, dikelompokkan berdasarkan nama kelas.

SELECT count(DISTINCT guru.nmguru), pelajaran.nmmapel from guru, pelajaran where pelajaran.guru_idguru=guru.idguru GROUP BY pelajaran.nmmapel WITH rollup;
Maksudnya : menampilkan jumlah nama guru yang mengajar suatu pelajaran dengan mengabaikan perulangan (yakni perintah DISTINCT, jadi jika ada dua nama sama maka dianggap satu. Jika tanpa DISTINCT maka dianggap dua) dari tabel guru dan pelajaran, dengan dikelompokkan berdsarkan nama pelajaran. Adapun ekspresi “rollup” digunakan untuk menampilkan jumlah total dari semua jumlah data guru per pelajaran.
Jika tanpa DISTINCT maka tampilannya adalah :


Categories: ,

0 comments:

Post a Comment