Fungsi Agregat di MySQL
Fungsi Agregat adalah segalanya
- Melakukan perhitungan pada beberapa baris
- Dari satu kolom tabel
- Dan mengembalikan satu nilai.
Standar ISO mendefinisikan lima (5) fungsi agregat yaitu;
1) HITUNGAN
2) JUMLAH
3) AVG
4) MENIT
5) MAKS
Mengapa Menggunakan Fungsi Agregat
Dari sudut pandang bisnis, berbagai tingkat organisasi memiliki kebutuhan informasi yang berbeda. Manajer tingkat atas biasanya tertarik untuk mengetahui angka secara keseluruhan dan tidak perlu mengetahui detail masing-masing.
Fungsi agregat memungkinkan kami dengan mudah menghasilkan data ringkasan dari database kami.
Misalnya, dari database myflix kami, manajemen mungkin memerlukan laporan berikut
- Film yang paling sedikit disewa.
- Film yang paling banyak disewa.
- Jumlah rata-rata setiap film yang disewakan dalam sebulan.
Kami dengan mudah membuat laporan di atas menggunakan fungsi agregat.
Mari kita lihat fungsi agregat secara detail.
fungsi COUNT
Fungsi COUNT mengembalikan jumlah total nilai dalam bidang yang ditentukan. Ia bekerja pada tipe data numerik dan non-numerik. Semua fungsi agregat secara default mengecualikan nilai null sebelum mengerjakan data.
COUNT (*) adalah implementasi khusus dari fungsi COUNT yang mengembalikan jumlah semua baris dalam tabel tertentu. COUNT (*) juga mempertimbangkan nol dan duplikat.
Tabel di bawah ini menunjukkan data dalam tabel persewaan film
nomor referensi | tanggal transaksi | tanggal pengembalian | Nomor keanggotaan | film_id | film_ kembali |
---|---|---|---|---|---|
11 | 20-06-2012 | NULL | 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 | NULL | 3 | 3 | 0 |
Misalkan kita ingin mengetahui berapa kali film dengan id 2 telah disewakan
SELECT COUNT(`movie_id`) FROM `movierentals` WHERE `movie_id` = 2;
Menjalankan kueri di atas dalam MySQL meja kerja terhadap myflixdb memberi kita hasil berikut.
COUNT('movie_id') |
---|
3 |
Kata Kunci BERBEDA
Kata kunci DISTINCT yang memungkinkan kami menghilangkan duplikat dari hasil kami. Hal ini dicapai dengan mengelompokkan nilai-nilai yang serupa.
Untuk mengapresiasi konsep Distinct, mari jalankan query 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 rilisnya film tertua di perpustakaan kita, kita dapat menggunakan MySQLFungsi MIN untuk mendapatkan informasi yang diinginkan.
Pertanyaan berikut membantu kita mencapai hal itu
SELECT MIN(`year_released`) FROM `movies`;
Menjalankan kueri di atas dalam MySQL workbench terhadap myflixdb memberi kita hasil berikut.
MIN('year_released') |
---|
2005 |
Fungsi MAX
Seperti namanya, fungsi MAX merupakan kebalikan dari fungsi MIN. Dia mengembalikan nilai terbesar dari bidang tabel yang ditentukan.
Anggaplah kita ingin mendapatkan tahun peluncuran film terbaru di database kita. Kita dapat dengan mudah menggunakan fungsi MAX untuk mencapainya.
Contoh berikut mengembalikan tahun film terakhir yang dirilis.
SELECT MAX(`year_released`) FROM `movies`;
Menjalankan kueri di atas dalam MySQL workbench menggunakan myflixdb memberi kita hasil berikut.
MAX('year_released') |
---|
2012 |
Fungsi SUM
Misalkan kita menginginkan laporan yang memberikan jumlah total pembayaran yang dilakukan sejauh ini. Kita bisa menggunakan MySQL JUMLAH fungsi 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-
pembayaran_ id | Nomor keanggotaan | tanggal pembayaran | deskripsi | jumlah yang dibayarkan | eksternal_ referensi _nomor |
---|---|---|---|---|---|
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 | NULL |
Kueri yang ditunjukkan di bawah ini menampilkan semua pembayaran yang dilakukan dan menjumlahkannya untuk menghasilkan satu hasil.
SELECT SUM(`amount_paid`) FROM `payments`;
Menjalankan kueri di atas dalam MySQL workbench terhadap myflixdb memberikan hasil berikut.
SUM('amount_paid') |
---|
10500 |
AVG fungsi
MySQL AVG fungsi mengembalikan rata-rata nilai dalam kolom tertentu. Sama seperti fungsi SUM, itu hanya bekerja pada tipe data numerik.
Misalkan kita ingin mencari jumlah rata-rata yang dibayarkan. Kita dapat menggunakan query berikut –
SELECT AVG(`amount_paid`) FROM `payments`;
Menjalankan kueri di atas dalam MySQL workbench, memberi kita hasil sebagai berikut.
AVG('amount_paid') |
---|
3500 |
Pemikat Otak
Menurut Anda fungsi agregat itu mudah. Coba ini!
Contoh berikut mengelompokkan anggota berdasarkan nama, menghitung jumlah total pembayaran, jumlah pembayaran rata-rata, dan total keseluruhan jumlah 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 MySQL workbench memberi kita hasil berikut.
Ringkasan
- MySQL mendukung kelima (5) fungsi agregat standar ISO COUNT, SUM, AVG, MIN dan maks.
- JUMLAH dan AVG fungsi hanya bekerja pada data numerik.
- Jika Anda ingin mengecualikan nilai duplikat dari hasil fungsi agregat, gunakan kata kunci DISTINCT. Kata kunci ALL mencakup duplikat genap. Jika tidak ada yang ditentukan, SEMUA dianggap sebagai default.
- Fungsi agregat dapat digunakan bersama dengan klausa SQL lainnya seperti KELOMPOK OLEH