COUNT(*)
считает каждую запись, а COUNT(value)
учитывает только ненулевые значения. Для данного набора данных COUNT(*)
не может быть меньше COUNT(value)
, но может быть и больше.
Рассмотрим следующий набор данных:
val
1
2
null
У нас есть 3 записи, одна из которых имеет значение нулевой. Теперь, если мы запустим:
select count(*), count(val) from t
Мы получим:
count(*) | count(val)
-------: | ---------:
3 | 2
Демонстрация на DB Fiddlde