6.1 Senarai fungsi agregat

Apabila anda menggunakan kumpulan baris dalam SQL dengan operator GROUP BY, anda boleh menggunakan SELECTfungsi dalam pernyataan yang beroperasi pada data terkumpul. Fungsi sedemikian juga dipanggil fungsi agregat.

Berikut ialah senarai yang paling popular:

# Fungsi Penerangan
1 COUNT() Mengembalikan bilangan nilai dalam kumpulan
2 SUM() Mengembalikan jumlah nilai dalam kumpulan
3 MAX() Mengembalikan nilai maksimum kumpulan
4 MIN() Mengembalikan nilai minimum kumpulan
5 AVG() Mengembalikan min kumpulan
6 BIT_AND() Melakukan bitwise DAN ke atas semua nilai kumpulan
7 BIT_OR() Melakukan bitwise ATAU ke atas semua nilai kumpulan
8 BIT_XOR() Melakukan XOR bitwise ke atas semua nilai kumpulan
9 GROUP_CONCAT() Menggabungkan semua nilai kumpulan ke dalam satu rentetan
Ini bukan senarai lengkap fungsi agregat, tetapi selebihnya adalah sangat khusus dan saya tidak fikir anda akan menggunakannya dalam tempoh 5 tahun akan datang. Jika anda masih memerlukannya, anda sentiasa boleh membaca dokumentasi rasmi untuk DBMS anda.

Sekarang mari kita lihat beberapa contoh dengan fungsi agregat kami.

6.2 Menganalisis gaji pekerja

Mari kita hitung beberapa statistik tentang pekerja kita dari jadual pekerja .

Soalan satu: berapa ramai pekerja yang kita ada?

Jika kita ingin mengetahui bilangan semua rekod dalam jadual, maka kita boleh menggunakan fungsi agregat untuk ini COUNT. Permintaan akan kelihatan seperti ini:

SELECT COUNT(*) FROM employee

Dan MySQL akan mengembalikan nombor 6 sebagai jawapan. Kami mempunyai 6 pekerja di jabatan itu, termasuk seekor kucing. Baiklah.

Soalan dua: berapa banyak yang kita bayar setiap bulan kepada semua pekerja?

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

Permintaan akan kelihatan seperti ini:

SELECT SUM(salary) FROM employee

Ambil perhatian bahawa kali ini kami dikehendaki untuk menentukan nilai lajur mana yang kami ringkaskan. Kami telah menetapkan lajur gaji . Kita tidak boleh hanya menjumlahkan semua medan dalam jadual.

Dan MySQL akan mengembalikan nombor 461000 sebagai jawapan. Kami mempunyai 6 pekerja di jabatan, dan gaji 461 ribu. Terlalu banyak.

Dan akhirnya, soalan ketiga: berapakah gaji maksimum dan minimum kita di jabatan? Baiklah, mari kita kira purata gaji. Untuk melakukan ini, kita memerlukan fungsi MIN, MAXdan AVG.

Pertanyaan akan menjadi lebih kompleks kali ini dan kelihatan seperti ini:

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

Hasil daripada pertanyaan ini ialah:

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

Gaji minimum di jabatan kami ialah $1,000 – sangat bagus. Gaji maksimum ialah 200 ribu, tetapi ini adalah pengarah.

Tetapi gaji purata terlalu tinggi, anda perlu mengoptimumkan kos. Jom upah kucing lain dan itu sahaja :)