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.