Fungsi Agregat dalam MySQL

MySQL: Fungsi Agregat (COUNT, MIN, MAX, SUM, AVG)

Oleh: Fairuz el Said

Fungsi Agregat IconFungsi 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 .
Fungsi ini digunakan bersama dengan pernyataan SELECT, untuk pembahasannya dapat anda baca pada meteri: Pernyataan SELECT dalam MySQL

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.

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:

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 - Data Tabel Buku

Fungsi Agregat – Data Tabel Buku

Fungsi Agregat: COUNT

Fungsi COUNT Digunakan untuk menghitung jumlah record.

Contoh:

  • Hitung jumlah record tabel buku
mysql> SELECT COUNT(*)
    -> FROM buku;
+----------+
| COUNT(*) |
+----------+
|        6 |
+----------+
1 row in set (0.00 sec)
  • Hitung jumlah record tabel buku dengan nama kolom jum_rec
mysql> SELECT COUNT(*) AS jum_rec
    -> FROM buku;
+---------+
| jum_rec |
+---------+
|       6 |
+---------+
1 row in set (0.03 sec)
  • Hitung jumlah record untuk tahun 2013
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
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
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
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
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
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
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
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

mysql> SELECT AVG(harga) AS harga_rerata
    -> FROM buku
    -> WHERE tahun=2013;
+--------------+
| harga_rerata |
+--------------+
|   40000.0000 |
+--------------+
1 row in set (0.00 sec)

 

Sumber

 

Tuliskan komentar anda

Komentar

Tinggalkan Balasan