Fungsi agregat dalam MySQL adalah fungsi yang menerima koleksi nilai
dan mengembalikan nilai tunggal sebagai hasilnya, seperti: jumlah data,
nilai minimun, nilai maximum dan nilai rata-rata .
Jenis Fungsi Agregat
Standar ISO mendefinisikan lima jenis fungsi agregat, yaitu:SUM | digunakan untuk menghitung total nilai dari kolom tertentu |
COUNT | digunakan untuk menghitung jumlah record. |
AVG | digunakan untuk menampikan nilai rata-rata dari suatu kolom |
MAX | digunakan untuk menampikan nilai tertinggi dari suatu kolom |
MIN | digunakan untuk menampikan nilai terendah dari suatu kolom |
Latihan Fungsi Agregat
Sebelum latihan, kita buat dulu tabel buku dengan struktur tabel sebagai berikut.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| mysql> CREATE TABLE buku ( -> kode_buku CHAR (5) PRIMARY KEY , -> judul_buku VARCHAR (50), -> pengarang VARCHAR (30), -> penerbit VARCHAR (30), -> tahun YEAR , -> kategori VARCHAR (30), -> harga INT (7), -> tgl_inventaris DATE -> ); Query OK, 0 rows affected (0.15 sec) mysql> DESC buku; + ----------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | + ----------------+-------------+------+-----+---------+-------+ | kode_buku | char (5) | NO | PRI | NULL | | | judul_buku | varchar (50) | YES | | NULL | | | pengarang | varchar (30) | YES | | NULL | | | penerbit | varchar (30) | YES | | NULL | | | tahun | year (4) | YES | | NULL | | | kategori | varchar (30) | YES | | NULL | | | harga | int (7) | YES | | NULL | | | tgl_inventaris | date | YES | | NULL | | + ----------------+-------------+------+-----+---------+-------+ 8 rows in set (0.01 sec) |
dengan data sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| mysql> INSERT INTO buku VALUES -> ( 'B0001' , 'Harry Potter' , 'JK Rowling' , 'British Press' , 2013, 'Fiksi' , 50000, '201-03-01' ), -> ( 'B0002' , 'Sistem Basis Data' , 'Abdul Kadir' , 'Andi Offset' , 2013, 'Buku Teks' , 40000, '2015-03-01' ), -> ( 'B0003' , 'Sistem Basis Data' , 'Fathansyah' , 'ITB Press' , 2013, 'Buku Teks' , 30000, '2015-03-01' ), -> ( 'B0004' , 'Prophet Muhammad' , 'Amir Abdullah' , 'Madina Press' , 2014, 'Biografi' , 45000, '2015-03-01' ), -> ( 'B0005' , 'Ketika Cinta Bertasbih' , 'Habiburahaman ES' , 'Madina Press' , 2014, 'Fiksi' , 75000, '2015-02-01' ), -> ( 'B0006' , 'Pemrograman Basis Data' , 'Abdul Kadir' , 'Andi Offset' , 2015, 'Buku Teks' , 67000, '2015-02-01' ); Query OK, 6 rows affected (0.05 sec) Records: 6 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM buku; + -----------+------------------------+------------------+---------------+-------+-----------+------+----------------+ | kode_buku | judul_buku | pengarang | penerbit | tahun | kategori | harga| tgl_inventaris | + -----------+------------------------+------------------+---------------+-------+-----------+------+----------------+ | B0001 | Harry Potter | JK Rowling | British Press | 2013 | Fiksi | 50000| 2015-03-01 | | B0002 | Sistem Basis Data | Abdul Kadir | Andi Offset | 2013 | Buku Teks | 40000| 2015-03-01 | | B0003 | Sistem Basis Data | Fathansyah | ITB Press | 2013 | Buku Teks | 30000| 2015-03-01 | | B0004 | Prophet Muhammad | Amir Abdullah | Madina Press | 2014 | Biografi | 45000| 2015-03-01 | | B0005 | Ketika Cinta Bertasbih | Habiburahaman ES | Madina Press | 2014 | Fiksi | 75000| 2015-02-01 | | B0006 | Pemrograman Basis Data | Abdul Kadir | Andi Offset | 2015 | Buku Teks | 67000| 2015-02-01 | + -----------+------------------------+------------------+---------------+-------+-----------+------+----------------+ 6 rows in set (0.00 sec) |
Fungsi Agregat: COUNT
Fungsi COUNT Digunakan untuk menghitung jumlah record.
Contoh:
- Hitung jumlah record tabel buku
1
2
3
4
5
6
7
8
| mysql> SELECT COUNT (*) -> FROM buku; + ----------+ | COUNT (*) | + ----------+ | 6 | + ----------+ 1 row in set (0.00 sec) |
- Hitung jumlah record tabel buku dengan nama kolom jum_rec
1
2
3
4
5
6
7
8
| mysql> SELECT COUNT (*) AS jum_rec -> FROM buku; + ---------+ | jum_rec | + ---------+ | 6 | + ---------+ 1 row in set (0.03 sec) |
- Hitung jumlah record untuk tahun 2013
1
2
3
4
5
6
7
8
9
| mysql> SELECT COUNT (*) AS jum_rec -> FROM buku -> WHERE tahun = 2013; + ---------+ | jum_rec | + ---------+ | 3 | + ---------+ 1 row in set (0.03 sec) |
Fungsi Agregat SUM
Fungsi SUM digunakan untuk menghitung total nilai dari kolom tertentu
Contoh:
- Hitung total harga
1
2
3
4
5
6
7
8
| mysql> SELECT SUM (harga) AS total_harga -> FROM buku; + -------------+ | total_harga | + -------------+ | 307000 | + -------------+ 1 row in set (0.03 sec) |
- Hitung total harga untuk tahun 2013
1
2
3
4
5
6
7
8
9
| mysql> SELECT SUM (harga) AS total_harga -> FROM buku -> WHERE tahun=2013; + -------------+ | total_harga | + -------------+ | 120000 | + -------------+ 1 row in set (0.00 sec) |
Fungsi Agregat MAX
Fungsi Max Digunakan untuk menampikan nilai tertinggi dari suatu kolom
Contoh:
- Tampilkan harga tertinggi
1
2
3
4
5
6
7
8
| mysql> SELECT MAX (harga) AS harga_tertingi -> FROM buku; + ----------------+ | harga_tertingi | + ----------------+ | 75000 | + ----------------+ 1 row in set (0.00 sec) |
- Tampilkan harga tertinggi untuk tahun 2013
1
2
3
4
5
6
7
8
9
| mysql> SELECT MAX (harga) AS harga_tertinggi -> FROM buku -> WHERE tahun=2013; + -----------------+ | harga_tertinggi | + -----------------+ | 50000 | + -----------------+ 1 row in set (0.00 sec) |
Fungsi Agregat: MIN
Fungsi MIN Digunakan untuk menampikan nilai terendah dari suatu kolom
Contoh:
- Tampilkan harga terendah
1
2
3
4
5
6
7
8
| mysql> SELECT MIN (harga) AS harga_terendah -> FROM buku; + ----------------+ | harga_terendah | + ----------------+ | 30000 | + ----------------+ 1 row in set (0.00 sec) |
- Tampilkan harga terendah untuk tahun 2013
1
2
3
4
5
6
7
8
9
| mysql> SELECT MIN (harga) AS harga_terendah -> FROM buku -> WHERE tahun=2013; + ----------------+ | harga_terendah | + ----------------+ | 30000 | + ----------------+ 1 row in set (0.00 sec) |
Fungsi Agregat AVG
Fungsi AVG Digunakan untuk menampikan nilai rata-rata dari suatu kolom
Contoh:
- Tampilkan harga rata-rata
1
2
3
4
5
6
7
8
| mysql> SELECT AVG (harga) AS harga_rerata -> FROM buku; + --------------+ | harga_rerata | + --------------+ | 51166.6667 | + --------------+ 1 row in set (0.00 sec) |
- Tampilkan harga rata-rata untuk tahun 2013
1
2
3
4
5
6
7
8
9
| mysql> SELECT AVG (harga) AS harga_rerata -> FROM buku -> WHERE tahun=2013; + --------------+ | harga_rerata | + --------------+ | 40000.0000 | + --------------+ 1 row in set (0.00 sec) |
Sumber
- fairuzelsaid.wordpress.com, SQL: Fungsi Agregat