Проблем:
Искате да определите колко реда има една таблица.
Пример:
Нашата база данни има таблица с име pet
с данни в следните колони:id
, eID
(електронен идентификатор) и name
.
id | eID | име |
---|---|---|
1 | 23456 | искрящ |
2 | 23457 | мили |
3 | NULL | леки |
4 | NULL | карл |
5 | 34545 | маги |
Нека преброим всички редове в таблицата.
Решение:
COUNT(*)
отчита общия брой редове в таблицата:
SELECT COUNT(*) as count_pet FROM pet;
Ето резултата:
count_pet |
---|
5 |
Вместо да предавате звездичката като аргумент, можете да използвате името на конкретна колона:
SELECT COUNT(id) as count_pet FROM pet;
В този случай COUNT(id)
отчита броя на редовете, в които id
не е NULL
.
Дискусия:
Използвайте COUNT
агрегатна функция за преброяване на броя на редовете в таблица. Тази функция приема името на колоната като свой аргумент (напр. id
) и връща броя на редовете за тази конкретна колона в таблицата (напр. 5).
Както бе споменато по-горе, когато посочите колона вместо звездичката, функцията ще отчита само не-NULL
стойности. Тъй като id е първичният ключ на нашата таблица и следователно има уникален и не-NULL
стойности – това е добър кандидат за преброяване на общия брой редове в таблицата.
Разбира се, за да преброите всички редове, можете вместо това да предадете знака звездичка като аргумент на COUNT. Това ще преброи всички редове, включително тези със стойност NULL
във всяка колона.
Ето пример за преброяване на броя на редовете за колона, която има NULL
стойности:
SELECT COUNT(eID) as count_pet FROM pet;
count_pet |
---|
3 |
Препоръчително е да подадете колона с първичен ключ или знака * към функцията COUNT, за да преброите броя на редовете в таблица. Както видяхме, и двата подхода ще дадат един и същ резултат.