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: 0mysql> 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 – Data Tabel Buku
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