Di MariaDB, COUNT() fungsi agregat mengembalikan hitungan jumlah nilai non-NULL dari ekspresi dalam baris yang diambil oleh SELECT pernyataan.
Contoh Data
Misalkan kita memiliki tabel berikut:
SELECT *
FROM Pets; Hasil:
+-------+-----------+---------+---------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------------+ | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +-------+-----------+---------+---------+------------+
Contoh berikut akan menggunakan COUNT() berfungsi saat menanyakan tabel ini.
Contoh
Berikut cara menghitung baris pada tabel di atas:
SELECT COUNT(*)
FROM Pets; Hasil:
8
Ini memberitahu kita bahwa ada 8 baris dalam tabel. Kami mengetahuinya karena kami menggunakan wildcard asterisk (* ) untuk menentukan semua baris dan semua kolom.
Hitung Kolom Tertentu
Anda juga dapat menentukan kolom untuk dihitung. COUNT() fungsi hanya menghitung non-NULL hasil, jadi jika Anda menentukan kolom yang berisi NULL nilai, nilai tersebut tidak akan dihitung.
Berikut ini contoh untuk menunjukkan apa yang saya maksud.
SELECT COUNT(DOB)
FROM Pets; Hasil:
6
Dalam hal ini, Pets tabel berisi dua NULL nilai dalam DOB kolom (dua hewan peliharaan belum memberikan tanggal lahir mereka), jadi COUNT(DOB) mengembalikan 6, bukannya 8 saat kita menggunakan COUNT(*) .
Alasan COUNT(*) pada contoh sebelumnya mengembalikan semua baris, karena kedua baris tersebut dilakukan memiliki data di kolom lain.
Hasil yang Difilter
COUNT() fungsi menghitung baris yang dikembalikan oleh kueri. Jadi jika Anda memfilter hasilnya, hasil dari COUNT() akan mencerminkan hal itu.
SELECT COUNT(*)
FROM Pets
WHERE PetName = 'Fluffy'; Hasil:
2
Dalam hal ini, ada dua hewan peliharaan dengan nama Fluffy. Oleh karena itu, dua baris akan dikembalikan oleh kueri, dan hasil dari COUNT() adalah 2 .
Hitung Kolom Berbeda
Kami memiliki opsi untuk menambahkan DISTINCT kata kunci untuk menentukan bahwa hanya nilai yang berbeda yang dikembalikan (sehingga tidak termasuk duplikat):
SELECT
COUNT(PetName) AS "All",
COUNT(DISTINCT PetName) AS "Distinct"
FROM Pets; Hasil:
+-----+----------+ | All | Distinct | +-----+----------+ | 8 | 7 | +-----+----------+
Dalam hal ini, meskipun ada delapan PetName nilai, hanya tujuh di antaranya yang berbeda (dua adalah duplikat – kami memiliki dua hewan peliharaan yang disebut Fluffy).
The HAVING Klausa
Anda dapat menyertakan COUNT() di beberapa bagian kueri. Tidak hanya terbatas pada SELECT daftar.
Berikut adalah contoh yang menggunakan COUNT() di kedua HAVING klausa dan SELECT daftar:
SELECT
PetTypeId,
COUNT(PetTypeId) AS Count
FROM Pets
GROUP BY PetTypeId
HAVING COUNT(PetTypeId) > 2
ORDER BY Count DESC; Hasil:
+-------------+---------+ | PetTypeId | Count | |-------------+---------| | 3 | 4 | | 2 | 3 | +-------------+---------+
Lihat SQL COUNT() untuk Pemula untuk penjelasan lebih rinci tentang contoh ini, serta contoh penggunaan COUNT() dalam fungsi jendela.