Tutorial Fungsi Agregat MySQL: SUM, AVG, MAX, MIN, COUNT, DISTINCT

Anonim

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

2) SUM
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.