Indonesia: 4 July, 2024

Tutorial MySQL Part 23: Penggunaan Group By Di MySQL

Melanjutkan tutorial sebelumnya mengenai Penggunaan Select Distinct di MySQL, di tutorial kali ini kita akan mempelajari Penggunaan Group By di MySQL.

Group By MySQL

Perintah Group By di gunakan di dalam pernyataan Select untuk mengelompokkan data dengan nilai yang sama. Group By dapat digunakan bersama Aggregate Function COUNT(), MAX(), MIN(), SUM(), AVG() untuk mengelompokkan kumpulan nilai berdasarkan satu atau beberapa kolom.

Group By dapat menampilkan row tanpa duplikat yang mana juga dapat di lakukan menggunakan perintah Select Distinct yang telah kita pelajari di tutorial sebelumnya, namun apa perbedaannya? Mari simak pembahasan berikut.

Query Group By:

SELECT nama_kolom 
FROM nama_tabel
WHERE kondisi
GROUP BY nama_kolom
ORDER BY nama_kolom;

Kita akan latihan menggunakan perintah Group By pada tabel biodata_mahasiswa di bawah ini:

MariaDB [mahasiswa]> SELECT * FROM biodata_mahasiswa;
+--------+-----------+-----------------+-----------+-----------+
| id_mhs | nim       | nama            | jekel     | kota_asal |
+--------+-----------+-----------------+-----------+-----------+
|      1 | 191100111 | Zoe Martin      | Laki-laki | Jakarta   |
|      2 | 191100112 | Dwi Jane        | Perempuan | Jakarta   |
|      3 | 191100113 | Ayra Mysha      | Perempuan | Medan     |
|      4 | 191100114 | Azka Putra      | Laki-laki | Padang    |
|      5 | 191100115 | Tyas Miranda    | Perempuan | Padang    |
|      6 | 191100116 | Kayle Jane      | Perempuan | Padang    |
|      7 | 191100117 | Regina Rajendra | Perempuan | Padang    |
|      8 | 191100118 | Budi Utomo      | Laki-laki | Palembang |
|      9 | 191100119 | Yeni Irna       | Perempuan | Medan     |
|     10 | 191100120 | Nanda Putra     | Laki-laki | Medan     |
+--------+-----------+-----------------+-----------+-----------+
10 rows in set (0.001 sec)

Contoh Penggunaan Group By

  • Menampilkan daftar dari kota mana saja mahasiswa berasal

Perhatikan contoh berikut!

MariaDB [mahasiswa]> SELECT kota_asal FROM biodata_mahasiswa
    -> GROUP BY kota_asal;
+-----------+
| kota_asal |
+-----------+
| Jakarta   |
| Medan     |
| Padang    |
| Palembang |
+-----------+
4 rows in set (0.001 sec)

Penjelasan:

Hasil dari query di atas menjelaskan bahwa mahasiswa Unversitas A berasal dari 4 kota yang ada di Indonesia yaitu Jakarta, Medan, Padang, dan Palembang. Dengan menggunakan Group By, tampilan kota asal di kelompokkan berdasarkan nilai yang sama, sehingga memudahkan kita untuk melihat dari mana saja mahasiswa tersebut berasal.

Berbeda lagi jika kita hanya menggunakan perintah Select, pasti semua row kota asal akan di tampilkan.

  • Menampilkan jumlah mahasiswa berdasarkan kota asal

Perhatikan contoh berikut!

MariaDB [mahasiswa]> SELECT kota_asal , COUNT(id_mhs) AS total_mhs
    -> FROM biodata_mahasiswa
    -> GROUP BY kota_asal;
+-----------+-----------+
| kota_asal | total_mhs |
+-----------+-----------+
| Jakarta   |         2 |
| Medan     |         3 |
| Padang    |         4 |
| Palembang |         1 |
+-----------+-----------+
4 rows in set (0.001 sec)

Penjelasan:

Hasil dari query di atas menjelaskan bahwa mahasiswa yang berasal dari kota Jakarta ada 2 orang, dari Medan ada 3 orang, dari Padang ada 4 orang, dan dari Palembang ada 1 orang.

Catatan:
Penulisan Agregate Function contoh: COUNT() tidak mengandung spasi di antara COUNT dan tanda kurung. Jika menambahkan spasi di antaranya maka query akan error

  • Mengurutkan mahasiswa terbanyak berdasarkan kota asal dengan menambahkan perintah ORDER BY DESC.

Perhatikan contoh berikut!

MariaDB [mahasiswa]> SELECT kota_asal , COUNT(id_mhs) AS total_mhs
    -> FROM biodata_mahasiswa
    -> GROUP BY kota_asal
    -> ORDER BY total_mhs DESC;
+-----------+-----------+
| kota_asal | total_mhs |
+-----------+-----------+
| Padang    |         4 |
| Medan     |         3 |
| Jakarta   |         2 |
| Palembang |         1 |
+-----------+-----------+
4 rows in set (0.001 sec)

Penjelasan:

Hasil dari query di atas menjelaskan bahwa mahasiswa terbanyak berasal dari kota Padang sebanyak 4 orang, lalu di susul dari kota Medan sebanyak 3 orang, kemudian dari Kota Jakarta 2 orang, dan paling sedikit dari kota Palembang yaitu 1 orang.

  • Menampilkan jumlah mahasiswa Laki-laki berdasarkan kota asal dengan menambahkan Klausa WHERE.

Perhatikan contoh berikut!

    MariaDB [mahasiswa]> SELECT kota_asal , COUNT(id_mhs) AS "Mhs Laki-laki"
        -> FROM biodata_mahasiswa
        -> WHERE jekel = 'Laki-laki'
        -> GROUP BY kota_asal
        -> ORDER BY "Mhs Laki-laki" DESC;
    +-----------+---------------+
    | kota_asal | Mhs Laki-laki |
    +-----------+---------------+
    | Jakarta   |             1 |
    | Padang    |             1 |
    | Palembang |             1 |
    | Medan     |             1 |
    +-----------+---------------+
    4 rows in set (0.001 sec)
    
    

    Penjelasan:

    Hasil dari query di atas menjelaskan bahwa mahasiswa laki-laki yang berasal dari kota Jakarta ada 1 orang, dari kota Padang ada 1 orang, dari kota Palembang ada 1 orang, dan dari kota medan ada 1 orang

    Kesimpulan:

    • GROUP BY dapat di gunakan bersama Aggregate Function COUNT(), MAX(), MIN(), SUM(), AVG() sedangkan Select Distinct tidak.
    • GROUP BY dapat di gunakan dengan Klausa WHERE dan ORDER BY sedangkan SELECT DISTINCT tidak.

    Setelah memahami penggunaan Group BY di MySQL, pada materi selanjutnya akan kita pelajari mengenai Tabel Relationship.

    Selamat belajar, semoga bermanfaat!

    Tinggalkan Balasan

    Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *