Fungsi agregat biasanya digunakan bersamaan dengan Group By clause untuk mengelompokkan data berdasarkan kelompok kolom tertentu.
Di bawah ini adalah tabel macam-macam fungsi agregat di MySQL:
Nama Fungsi | Deskripsi |
---|---|
AVG() | Menampilkan nilai rata-rata |
COUNT() | Menampilkan jumlah record atau data |
MAX() | Menampilkan nilai maksimum |
MIN() | Menampilkan nilai minimum |
SUM() | Menampilkan total jumlah |
Fungsi AVG()
Fungsi AVG() digunakan untuk menampilkan nilai rata-rata suatu data. Sebagai contoh misalkan, menampilkan rata-rata umur pegawai di sebuah perusahaan.
Sintak Dasar
Di bawah ini adalah sintak dasar dari fungsi AVG() di MySQL:
SELECT AVG(nama_kolom) FROM nama_tabel; atau SELECT nama_kolom1, AVG(nama_kolom2) FROM nama_tabel WHERE [kondisi] GROUP BY nama_kolom1;
Contoh:
Misalkan Anda telah memiliki sebuah tabel pegawai dengan data-data sebagai berikut:
mysql> SELECT * FROM karyawan; +------------+---------------+---------------+-----------+------+----------+------------+ | id_pegawai | nama_lengkap | jenis_kelamin | alamat | umur | gaji | departemen | +------------+---------------+---------------+-----------+------+----------+------------+ | P001 | Nursalim | L | Jakarta | 27 | 15000000 | IT | | P002 | Iskiyati | P | Bandung | 23 | 7000000 | MKT | | P003 | Nurul Hikmah | P | Semarang | 20 | 4000000 | HR | | P004 | Ahmad Fatoni | L | Cirebon | 26 | 10000000 | IT | | P005 | Sri Rahayu | P | Surabaya | 25 | 8000000 | ACC | | P006 | Naura Krasiva | P | Magelang | 21 | 3000000 | HR | | P007 | Ana Fauziyah | P | Tegal | 22 | 4500000 | SLS | | P008 | Irwan Gunawan | L | Tangerang | 30 | 11000000 | FIN | | P009 | Ali Amrullah | L | Jakarta | 28 | 8500000 | IT | | P010 | Andi Lala | L | Bogor | 23 | 6000000 | FIN | +------------+---------------+---------------+-----------+------+----------+------------+ 10 rows in set (0.04 sec)
Dari data-data diatas, coba Anda kerjakan soal-soal berikut ini:
- Tampilkan rata-rata umur semua pegawai? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT AVG(umur) -> FROM karyawan; +-----------+ | AVG(umur) | +-----------+ | 24.5000 | +-----------+ 1 row in set (0.05 sec)
- Tampilkan rata-rata umur pegawai berdasarkan jenis kelamin? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT jenis_kelamin, AVG(umur) rata_rata -> FROM karyawan -> GROUP BY jenis_kelamin; +---------------+-----------+ | jenis_kelamin | rata_rata | +---------------+-----------+ | L | 26.8000 | | P | 22.2000 | +---------------+-----------+ 2 rows in set (0.09 sec)
- Tampilkan rata-rata gaji pegawai berdasarkan departemen? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT departemen, AVG(gaji) rata_rata_gaji -> FROM karyawan -> GROUP BY departemen; +------------+----------------+ | departemen | rata_rata_gaji | +------------+----------------+ | ACC | 8000000.0000 | | FIN | 8500000.0000 | | HR | 3500000.0000 | | IT | 11166666.6667 | | MKT | 7000000.0000 | | SLS | 4500000.0000 | +------------+----------------+ 6 rows in set (0.00 sec)
Fungsi COUNT()
Fungsi COUNT() digunakan untuk menampilkan jumlah record atau data. Misalkan ingin menampilkan jumlah semua data pegawai, menampilkan jumlah data berdasarkana kelompok jenis kelamin, umur, dan lain sebagainya.
Sintak Dasar
Di bawah ini merupakan sintak dasar dari fungsi COUNT() di MySQL:
SELECT COUNT(nama_kolom) FROM nama_tabel; atau SELECT nama_kolom1, COUNT(nama_kolom2) FROM nama_tabel WHERE [kondisi] GROUP BY nama_kolom1;
Contoh:
Misalkan Anda telah memiliki sebuah tabel pegawai dengan data-data sebagai berikut:
mysql> SELECT * FROM pegawai; +------------+---------------+---------------+-----------+------+----------+------------+ | id_pegawai | nama_lengkap | jenis_kelamin | alamat | umur | gaji | departemen | +------------+---------------+---------------+-----------+------+----------+------------+ | P001 | Nursalim | L | Jakarta | 27 | 15000000 | IT | | P002 | Iskiyati | P | Bandung | 23 | 7000000 | MKT | | P003 | Nurul Hikmah | P | Semarang | 20 | 4000000 | HR | | P004 | Ahmad Fatoni | L | Cirebon | 26 | 10000000 | IT | | P005 | Sri Rahayu | P | Surabaya | 25 | 8000000 | ACC | | P006 | Naura Krasiva | P | Magelang | 21 | 3000000 | HR | | P007 | Ana Fauziyah | P | Tegal | 22 | 4500000 | SLS | | P008 | Irwan Gunawan | L | Tangerang | 30 | 11000000 | FIN | | P009 | Ali Amrullah | L | Jakarta | 28 | 8500000 | IT | | P010 | Andi Lala | L | Bogor | 23 | 6000000 | FIN | +------------+---------------+---------------+-----------+------+----------+------------+ 10 rows in set (0.45 sec)
Dari data-data diatas, coba Anda kerjakan soal-soal berikut ini:
- Tampilkan jumlah data (record) dari tabel pegawai? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT COUNT(*) jumlah_pegawai -> FROM pegawai; +----------------+ | jumlah_pegawai | +----------------+ | 10 | +----------------+ 1 row in set (1.79 sec)
- Tampilkan pegawai berdasarkan jenis kelamin? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT jenis_kelamin, COUNT(*) jumlah_pegawai -> FROM karyawan -> GROUP BY jenis_kelamin; +---------------+----------------+ | jenis_kelamin | jumlah_pegawai | +---------------+----------------+ | L | 5 | | P | 5 | +---------------+----------------+ 2 rows in set (0.17 sec)
- Tampilkan jumlah pegawai berdasarkan departemen? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT departemen, COUNT(*) jumlah_pegawai -> FROM karyawan -> GROUP BY departemen; +------------+----------------+ | departemen | jumlah_pegawai | +------------+----------------+ | ACC | 1 | | FIN | 2 | | HR | 2 | | IT | 3 | | MKT | 1 | | SLS | 1 | +------------+----------------+ 6 rows in set (0.00 sec)
Fungsi MAX()
Fungsi MAX() digunakan untuk menampilkan nilai maksimum dari beberapa record atau data.
Sintak Dasar
Di bawah ini adalah sintak dasar dari fungsi Max() di MySQL:
SELECT MAX(nama_kolom) FROM nama_tabel; atau SELECT nama_kolom1, MAX(nama_kolom2) FROM nama_tabel WHERE [kondisi] GROUP BY nama_kolom1;
Contoh:
Misalkan Anda telah memiliki sebuah table pegawai dengan data-data sebagai berikut:
mysql> SELECT * FROM pegawai; +------------+---------------+---------------+-----------+------+----------+------------+ | id_pegawai | nama_lengkap | jenis_kelamin | alamat | umur | gaji | departemen | +------------+---------------+---------------+-----------+------+----------+------------+ | P001 | Nursalim | L | Jakarta | 27 | 15000000 | IT | | P002 | Iskiyati | P | Bandung | 23 | 7000000 | MKT | | P003 | Nurul Hikmah | P | Semarang | 20 | 4000000 | HR | | P004 | Ahmad Fatoni | L | Cirebon | 26 | 10000000 | IT | | P005 | Sri Rahayu | P | Surabaya | 25 | 8000000 | ACC | | P006 | Naura Krasiva | P | Magelang | 21 | 3000000 | HR | | P007 | Ana Fauziyah | P | Tegal | 22 | 4500000 | SLS | | P008 | Irwan Gunawan | L | Tangerang | 30 | 11000000 | FIN | | P009 | Ali Amrullah | L | Jakarta | 28 | 8500000 | IT | | P010 | Andi Lala | L | Bogor | 23 | 6000000 | FIN | +------------+---------------+---------------+-----------+------+----------+------------+ 10 rows in set (0.45 sec)
Dari data-data diatas, coba Anda kerjakan soal-soal berikut:
- Tampilkan data pegawai yang memiliki usia paling tua? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT MAX(umur) -> FROM karyawan; +-----------+ | MAX(umur) | +-----------+ | 30 | +-----------+ 1 row in set (0.14 sec)
- Tampilkan data pegawai yang memiliki usia paling tua berdasarkan jenis kelamin? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT jenis_kelamin, MAX(umur) usia_maksimal -> FROM karyawan -> GROUP BY jenis_kelamin; +---------------+---------------+ | jenis_kelamin | usia_maksimal | +---------------+---------------+ | L | 30 | | P | 25 | +---------------+---------------+ 2 rows in set (0.00 sec)
- Tampilkan data pegawai yang memiliki gaji terbesar berdasarkan jenis kelamin? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT jenis_kelamin, MAX(gaji) gaji_terbesar -> FROM karyawan -> GROUP BY jenis_kelamin; +---------------+---------------+ | jenis_kelamin | gaji_terbesar | +---------------+---------------+ | L | 15000000 | | P | 8000000 | +---------------+---------------+ 2 rows in set (0.23 sec)
Fungsi MIN()
Fungsi MIN() digunakan untuk menampilkan data record terkecil dari beberapa record/data.
Sintak Dasar
Di bawah ini adalah sintak dasar dari fungsi MIN() di MySQL:
SELECT MIN(nama_kolom) FROM nama_tabel; atau SELECT nama_kolom1, MIN(nama_kolom2) FROM nama_tabel WHERE [kondisi] GROUP BY nama_kolom1;
Contoh:
Misalkan Anda telah memiliki tabel pegawai dengan data-data sebagai berikut:
mysql> SELECT * FROM pegawai; +------------+---------------+---------------+-----------+------+----------+------------+ | id_pegawai | nama_lengkap | jenis_kelamin | alamat | umur | gaji | departemen | +------------+---------------+---------------+-----------+------+----------+------------+ | P001 | Nursalim | L | Jakarta | 27 | 15000000 | IT | | P002 | Iskiyati | P | Bandung | 23 | 7000000 | MKT | | P003 | Nurul Hikmah | P | Semarang | 20 | 4000000 | HR | | P004 | Ahmad Fatoni | L | Cirebon | 26 | 10000000 | IT | | P005 | Sri Rahayu | P | Surabaya | 25 | 8000000 | ACC | | P006 | Naura Krasiva | P | Magelang | 21 | 3000000 | HR | | P007 | Ana Fauziyah | P | Tegal | 22 | 4500000 | SLS | | P008 | Irwan Gunawan | L | Tangerang | 30 | 11000000 | FIN | | P009 | Ali Amrullah | L | Jakarta | 28 | 8500000 | IT | | P010 | Andi Lala | L | Bogor | 23 | 6000000 | FIN | +------------+---------------+---------------+-----------+------+----------+------------+ 10 rows in set (0.03 sec)
Dari data-data diatas, coba Anda kerjakan soal-soal berikut:
- Tampilkan data pegawai yang memiliki usia paling muda?. Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT MIN(umur) usia_paling_muda -> FROM pegawai; +------------------+ | usia_paling_muda | +------------------+ | 20 | +------------------+ 1 row in set (0.00 sec)
- Tampilkan data pegawai yang memiliki gaji paling kecil?. Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT MIN(gaji) gaji_terkecil -> FROM pegawai; +---------------+ | gaji_terkecil | +---------------+ | 3000000 | +---------------+ 1 row in set (0.00 sec)
- Tampilkan data pegawai yang memiliki gaji paling kecil berdasarkan jenis kelamin? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT jenis_kelamin, MIN(gaji) gaji_terkecil -> FROM pegawai -> GROUP BY jenis_kelamin; +---------------+---------------+ | jenis_kelamin | gaji_terkecil | +---------------+---------------+ | L | 6000000 | | P | 3000000 | +---------------+---------------+ 2 rows in set (0.00 sec)
Fungsi SUM()
Fungsi SUM() digunakan untuk menampilkan total jumlah sebuah data. Misalkan menampilkan total gaji seluruh pegawai.
Sintak Dasar
Di bawah ini adalah sintak dasar dari fungsi SUM() di MySQL:
SELECT SUM(nama_kolom) FROM nama_tabel; atau SELECT nama_kolom1, SUM(nama_kolom2) FROM nama_tabel WHERE [kondisi] GROUP BY nama_kolom1;
Contoh:
Misalkan Anda telah memiliki sebuah pegawai dengan data-data sebagai berikut:
mysql> SELECT * FROM pegawai; +------------+---------------+---------------+-----------+------+----------+------------+ | id_pegawai | nama_lengkap | jenis_kelamin | alamat | umur | gaji | departemen | +------------+---------------+---------------+-----------+------+----------+------------+ | P001 | Nursalim | L | Jakarta | 27 | 15000000 | IT | | P002 | Iskiyati | P | Bandung | 23 | 7000000 | MKT | | P003 | Nurul Hikmah | P | Semarang | 20 | 4000000 | HR | | P004 | Ahmad Fatoni | L | Cirebon | 26 | 10000000 | IT | | P005 | Sri Rahayu | P | Surabaya | 25 | 8000000 | ACC | | P006 | Naura Krasiva | P | Magelang | 21 | 3000000 | HR | | P007 | Ana Fauziyah | P | Tegal | 22 | 4500000 | SLS | | P008 | Irwan Gunawan | L | Tangerang | 30 | 11000000 | FIN | | P009 | Ali Amrullah | L | Jakarta | 28 | 8500000 | IT | | P010 | Andi Lala | L | Bogor | 23 | 6000000 | FIN | +------------+---------------+---------------+-----------+------+----------+------------+ 10 rows in set (0.03 sec)
Dari data-data diatas, coba Anda kerjakan soal-soal berikut ini:
- Tampilkan total gaji seluruh pegawai? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT SUM(gaji) -> FROM pegawai; +-----------+ | SUM(gaji) | +-----------+ | 77000000 | +-----------+ 1 row in set (0.00 sec)
- Tampilkan total gaji pegawai per departemen? Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT departemen, SUM(gaji) total_gaji -> FROM pegawai -> GROUP BY departemen; +------------+------------+ | departemen | total_gaji | +------------+------------+ | ACC | 8000000 | | FIN | 17000000 | | HR | 7000000 | | IT | 33500000 | | MKT | 7000000 | | SLS | 4500000 | +------------+------------+ 6 rows in set (0.00 sec)
- Tampilkan total gaji pegawai per jenis kelamin?Untuk menampilkannya, gunakan query berikut ini:
mysql> SELECT jenis_kelamin, SUM(gaji) total_gaji -> FROM karyawan -> GROUP BY jenis_kelamin; +---------------+------------+ | jenis_kelamin | total_gaji | +---------------+------------+ | L | 50500000 | | P | 26500000 | +---------------+------------+ 2 rows in set (0.21 sec)
Sekian Panduan Singkat Tutorial Penggunaan Fungsi Agregat Di MySQL. Semoga bermanfaat & Happy Learning MySQL.
Bagi teman-teman pembaca yang ingin berdiskusi, bertanya ataupun memberikan masukan atau saran pada tutorial ini, silakan untuk menggunakan fasilitas komentar yang telah disediakan.
Salam,
Nursalim
0 Comments