Dalam SQL ada fungsi yang disebut sebagai fungsi agregat. Fungsi agregat akan menghasilkan kolom baru dengan memproses nilai di dalam kolom. Fungsi agregat biasanya digunakan dengan kolom yang menyimpan nilai integer atau angka, terutama fungsi sum dan avg. Beberapa fungsi agregat dalam SQL adalah sebagai Berikut.
- SUM : Jumlah nilai dari suatu kolom
- AVG : Nilai rata-rata dari suatu kolom
- COUNT : Jumlah data dalam satu kolom
- MIN : Nilai terendah dari suatu kolom
- MAX : Nilai tertinggi dari suatu kolom
Fungsi agregat biasanya digunakan bersama dengan klausa AS didalam statement SELECT. Klausa as digunakan untuk membuat kolom yang menyimpan hasil dari fungsi agregat.
Sintaks statement dengan fungsi agregat adalah sebagai berikut.
- SELECT fungsi_agregate(nama_kolom) AS nama_kolom_baru FROM nama_tabel
Contoh :
- SELECT SUM(Nilai) AS total FROM tabelku
- SELECT AVG(Nilai) AS total FROM tabelku
- SELECT MIN(Nilai) AS total FROM tabelku
- SELECT MAX(Nilai) AS total FROM tabelku
- SELECT COUNT(Nama) AS total FROM tabelku
Umpamakan, kita punya tabel pertama seperti di bawah ini. Anggap saja namanya tabelku, dan nama databasenya dbku.
Id | Nama | Nilai |
1 | Romi | 90 |
2 | Aminah | 80 |
3 | Naomi | 80 |
4 | Rosi | 70 |
Kita bisa menggunakan beberapa fungsi agregat dalam satu query. Misalnya, untuk mencari total dan rata-rata dari kolom nilai tabel kita bisa menggunakan kode berikut ini.
<html>
<head>
<title>coba</title>
</head>
<body>
<table>
<?php
$koneksi=mysqli_connect("localhost", "root", "");
mysqli_select_db($koneksi, "dbku");
$hasil=mysqli_query($koneksi, "select SUM(Nilai) AS total, Avg(Nilai) AS rata_rata from tabelku");
$a=mysqli_fetch_array($hasil);
echo("Total : ".$a['total']." ");
echo("Rata-Rata : ".$a['rata_rata']);
mysqli_close($koneksi);
?>
</table>
</body>
</html>
Untuk menggunakan kode di atas, pastikan sudah ada database dengan nama dbku dan tabel dengan nama tabelku. Tabelnya harus memiliki kolom bernama "Nilai" kecuali kalian mengganti nama kolom di dalam kurung setelah sum dan avg dengan nama kolom lain.
Pada contoh kode di atas, fungsi sum menyimpan hasilnya dalam kolom total. Hasil dari fungsi average disimpan di dalam kolom rata_rata. Sama dengan saat menggunakan query lain, kita perlu menggunakan mysql_fetch_array. Kita tidak perlu menggunakan loop karena hasilnya cuma ada satu baris.