Fungsi Agregat adalah tentang
- Melakukan penghitungan pada beberapa baris
- Dari satu kolom tabel
- Dan mengembalikan satu nilai.
Standar ISO mendefinisikan lima (5) fungsi agregat yaitu;
1) JUMLAH
3) AVG
4) MIN
5) MAKS
Mengapa menggunakan fungsi agregat.
Dari perspektif bisnis, tingkat organisasi yang berbeda memiliki kebutuhan informasi yang berbeda pula. Manajer tingkat atas biasanya tertarik untuk mengetahui angka keseluruhan dan tidak memerlukan detail individu.
> Fungsi agregat memungkinkan kita untuk dengan mudah menghasilkan data yang diringkas dari database kita.
Misalnya, dari database myflix, manajemen mungkin memerlukan laporan berikut
- Film yang paling tidak disewa.
- Film yang paling banyak disewa.
- Jumlah rata-rata setiap film disewakan dalam sebulan.
Kami dengan mudah membuat laporan di atas menggunakan fungsi agregat.
Mari kita lihat fungsi agregat secara detail.
COUNT Fungsi
Fungsi COUNT mengembalikan jumlah total nilai di bidang yang ditentukan. Ini berfungsi pada tipe data numerik dan non-numerik. Semua fungsi agregat secara default mengecualikan nilai nulls sebelum mengerjakan data.
COUNT (*) adalah implementasi khusus dari fungsi COUNT yang mengembalikan jumlah semua baris dalam tabel yang ditentukan. COUNT (*) juga menganggap Nulls dan duplikat.
Tabel di bawah ini menunjukkan data dalam tabel movierentals
nomor referensi | tanggal transaksi | tanggal pengembalian | Nomor keanggotaan | movie_id | movie_ dikembalikan |
---|---|---|---|---|---|
11 | 20-06-2012 | BATAL | 1 | 1 | 0 |
12 | 22-06-2012 | 25-06-2012 | 1 | 2 | 0 |
13 | 22-06-2012 | 25-06-2012 | 3 | 2 | 0 |
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |
15 | 23-06-2012 | BATAL | 3 | 3 | 0 |
Misalkan kita ingin mendapatkan berapa kali film dengan id 2 telah disewakan
SELECT COUNT(`movie_id`) FROM `movierentals` WHERE `movie_id` = 2;
Menjalankan kueri di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil sebagai berikut.
COUNT('movie_id') |
---|
3 |
DISTINCT Kata Kunci
Kata kunci DISTINCT yang memungkinkan kami menghilangkan duplikat dari hasil kami. Ini dicapai dengan mengelompokkan nilai-nilai serupa.
Untuk mengapresiasi konsep Distinct, mari jalankan kueri sederhana
SELECT `movie_id` FROM `movierentals`;
movie_id |
---|
1 |
2 |
2 |
2 |
3 |
Sekarang mari kita jalankan kueri yang sama dengan kata kunci yang berbeda -
SELECT DISTINCT `movie_id` FROM `movierentals`;
Seperti yang ditunjukkan di bawah ini, perbedaan menghilangkan catatan duplikat dari hasil.
movie_id |
---|
1 |
2 |
3 |
Fungsi MIN
Fungsi MIN mengembalikan nilai terkecil di bidang tabel yang ditentukan .
Sebagai contoh, misalkan kita ingin mengetahui tahun di mana film tertua di perpustakaan kita dirilis, kita dapat menggunakan fungsi MIN MySQL untuk mendapatkan informasi yang diinginkan.
Kueri berikut membantu kami mencapai itu
SELECT MIN(`year_released`) FROM `movies`;
Menjalankan kueri di atas di meja kerja MySQL terhadap myflixdb memberi kita hasil sebagai berikut.
MIN('year_released') |
---|
2005 |
Fungsi MAX
Seperti namanya, fungsi MAX merupakan kebalikan dari fungsi MIN. Ini mengembalikan nilai terbesar dari bidang tabel yang ditentukan .
Anggaplah kita ingin mendapatkan tahun rilis film terbaru dalam database kita. Kita dapat dengan mudah menggunakan fungsi MAX untuk mencapai itu.
Contoh berikut mengembalikan tahun film terakhir yang dirilis.
SELECT MAX(`year_released`) FROM `movies`;
Menjalankan kueri di atas di meja kerja MySQL menggunakan myflixdb memberi kita hasil sebagai berikut.
MAX('year_released') |
---|
2012 |
Fungsi SUM
Misalkan kita menginginkan laporan yang memberikan jumlah total pembayaran yang dilakukan sejauh ini. Kita dapat menggunakan fungsi MySQL SUM yang mengembalikan jumlah semua nilai di kolom yang ditentukan . SUM hanya berfungsi pada bidang numerik . Nilai nol dikecualikan dari hasil yang dikembalikan.
Tabel berikut menunjukkan data dalam tabel pembayaran-
payment_ id | Nomor keanggotaan | tanggal pembayaran | deskripsi | jumlah yang dibayarkan | external_ reference _number |
---|---|---|---|---|---|
1 | 1 | 23-07-2012 | Pembayaran sewa film | 2500 | 11 |
2 | 1 | 25-07-2012 | Pembayaran sewa film | 2000 | 12 |
3 | 3 | 30-07-2012 | Pembayaran sewa film | 6000 | BATAL |
Kueri yang ditampilkan di bawah ini mendapatkan semua pembayaran yang dilakukan dan menjumlahkannya untuk mengembalikan satu hasil.
SELECT SUM(`amount_paid`) FROM `payments`;
Menjalankan kueri di atas di meja kerja MySQL terhadap myflixdb memberikan hasil sebagai berikut.
SUM('amount_paid') |
---|
10500 |
Fungsi AVG
Fungsi MySQL AVG mengembalikan rata-rata nilai dalam kolom tertentu . Sama seperti fungsi SUM, ini hanya berfungsi pada tipe data numerik .
Misalkan kita ingin mencari jumlah rata-rata yang dibayarkan. Kita bisa menggunakan query berikut -
SELECT AVG(`amount_paid`) FROM `payments`;
Menjalankan kueri di atas di meja kerja MySQL, memberi kita hasil sebagai berikut.
AVG('amount_paid') |
---|
3500 |
Ringkasan
- MySQL mendukung semua lima (5) fungsi agregat standar ISO COUNT, SUM, AVG, MIN dan MAX.
- Fungsi SUM dan AVG hanya bekerja pada data numerik.
- Jika Anda ingin mengecualikan nilai duplikat dari hasil fungsi agregat, gunakan kata kunci DISTINCT. Kata kunci ALL bahkan menyertakan duplikat. Jika tidak ada yang ditentukan, ALL dianggap sebagai default.
- Fungsi agregat dapat digunakan bersama dengan klausa SQL lainnya seperti GROUP BY
Asah Otak
Menurut Anda, fungsi agregat itu mudah. Coba ini!
Contoh berikut mengelompokkan anggota menurut nama, menghitung jumlah pembayaran, jumlah pembayaran rata-rata, dan jumlah total pembayaran.
SELECT m.`full_names`,COUNT(p.`payment_id`) AS `paymentscount`,AVG(p.`amount_paid`) AS `averagepaymentamount`,SUM(p.`amount_paid`) AS `totalpayments` FROM members m, payments p WHERE m.`membership_number` = p.`membership_number` GROUP BY m.`full_names`;
Menjalankan contoh di atas di meja kerja MySQL memberi kita hasil sebagai berikut.