6.1 Daftar fungsi agregat

Saat Anda menggunakan pengelompokan baris dalam SQL dengan operator GROUP BY, Anda dapat menggunakan SELECTfungsi dalam pernyataan yang beroperasi pada data yang dikelompokkan. Fungsi semacam itu juga disebut fungsi agregat.

Berikut adalah daftar yang paling populer:

# Fungsi Keterangan
1 MENGHITUNG() Mengembalikan jumlah nilai dalam grup
2 JUMLAH() Mengembalikan jumlah nilai dalam grup
3 MAX() Mengembalikan nilai maksimum grup
4 MIN() Mengembalikan nilai minimum grup
5 AVG() Mengembalikan rata-rata grup
6 BIT_AND() Melakukan bitwise DAN atas semua nilai grup
7 BIT_OR() Melakukan bitwise ATAU pada semua nilai grup
8 BIT_XOR() Melakukan XOR bitwise pada semua nilai grup
9 GROUP_CONCAT() Menggabungkan semua nilai grup menjadi satu string
Ini bukan daftar lengkap fungsi agregat, tetapi sisanya sangat spesifik dan menurut saya Anda tidak akan menggunakannya dalam 5 tahun ke depan. Jika Anda masih membutuhkannya, Anda selalu dapat membaca dokumentasi resmi untuk DBMS Anda.

Sekarang mari kita lihat beberapa contoh dengan fungsi agregat kita.

6.2 Menganalisis gaji karyawan

Mari hitung beberapa statistik karyawan kita dari tabel karyawan .

Pertanyaan pertama: berapa banyak karyawan yang kita miliki?

Jika kita ingin mengetahui jumlah semua record dalam tabel, maka kita dapat menggunakan fungsi agregat untuk this COUNT. Permintaan akan terlihat seperti ini:

SELECT COUNT(*) FROM employee

Dan MySQL akan mengembalikan angka 6. Kami memiliki 6 karyawan di departemen, termasuk seekor kucing. Baiklah.

Pertanyaan kedua: berapa yang kita bayar per bulan untuk semua karyawan?

Untuk menjawab pertanyaan ini, kita perlu menjumlahkan gaji semua karyawan. Untuk melakukan ini, kami menggunakan fungsi agregatSUM()

Permintaan akan terlihat seperti ini:

SELECT SUM(salary) FROM employee

Perhatikan bahwa kali ini kita diharuskan menentukan nilai kolom mana yang kita rangkum. Kami telah menentukan kolom gaji . Kita tidak bisa hanya menjumlahkan semua field dalam sebuah tabel.

Dan MySQL akan mengembalikan angka 461000 sebagai jawabannya Kami memiliki 6 karyawan di departemen, dan gajinya 461 ribu. Terlalu banyak.

Dan terakhir, pertanyaan ketiga: berapa gaji maksimum dan minimum kita di departemen? Nah, mari kita hitung gaji rata-rata. Untuk melakukan ini, kita memerlukan fungsi MIN, MAXdan AVG.

Kueri kali ini akan sedikit lebih rumit dan terlihat seperti ini:

SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee

Hasil dari kueri ini adalah:

MIN (gaji) AVG (gaji) MAX (gaji)
1000 76833.3333 200000

Upah minimum di departemen kami adalah $1.000 – sangat bagus. Gaji maksimal 200 ribu, tapi ini direkturnya.

Tetapi gaji rata-rata terlalu tinggi, Anda perlu mengoptimalkan biaya. Mari kita menyewa kucing lain dan hanya itu :)