Untuk mengelompokkan data, Anda dapat menggunakan Order By Clause. Perlu Anda ingat, bahwa Order By Clause biasanya digunakan ketika Anda menggunakan fungsi agregat di SQL seperti fungsi SUM, COUNT, MAX, MIN, dan AVG.
Sintak Dasar
Di bawah ini adalah sintak dasar dari Order By clause Di MySQL:
SELECT column_name, agregate_function(column_name) FROM table_name WHERE [ conditions ] GROUP BY [column_name] ORDER BY [column_name]
Penjelasan sintak:
- column_name setelah kata SELECT adalah nama kolom yang akan dikelompokkan datanya.
- agregate_function adalah fungsi agregat yang digunakan, bisa berupa fungsi COUNT, SUM, MAX, MIN, maupun AVG
- condition, apabila Anda ingin menambahkan kriteria-kriteria tertentu.
- GROUP BY column_name, artinya data dikelompokkan berdasarkan column_name
- ORDER BY column_name, artinya data diurutkan berdasarkan column_name.
Contoh
Misalkan Anda telah memiliki sebuah table "employee" dengan data-data sebagai berikut:
+-------------+---------------+--------+----------+---------+------------+ | employee_id | employee_name | gender | address | salary | departemen | +-------------+---------------+--------+----------+---------+------------+ | 001 | Nursalim | L | Jakarta | 3000000 | IT | | 002 | Naura | P | Bandung | 2000000 | HRD | | 003 | Ahmad | L | Semarang | 5000000 | ACC | | 004 | Nani | P | Surabaya | 2500000 | FIN | | 005 | Nurul | P | Tegal | 4500000 | FIN | +-------------+---------------+--------+----------+---------+------------+
Dari data-data diatas,
- Tampilkan jumlah data dari table "employee" berdasarkan jenis kelamin (gender)?
Untuk menampilkan jumlah data, berarti Anda harus menggunakan fungsi COUNT seperti query berikut ini:
mysql> SELECT gender, COUNT(*) jumlah_data -> FROM employee -> GROUP BY gender; +--------+-------------+ | gender | jumlah_data | +--------+-------------+ | L | 2 | | P | 3 | +--------+-------------+ 2 rows in set (0.00 sec)
- Tampilkan jumlah data dari table "employee" berdasarkan departemen?
Untuk menampilkan jumlah data, berarti Anda harus menggunakan fungsi COUNT seperti query berikut ini:
mysql> SELECT departemen, COUNT(*) jumlah_data -> FROM employee -> GROUP BY departemen; +------------+-------------+ | departemen | jumlah_data | +------------+-------------+ | ACC | 1 | | FIN | 2 | | HRD | 1 | | IT | 1 | +------------+-------------+ 4 rows in set (0.00 sec)