Не получить правильный счет в SQL - PullRequest
4 голосов
/ 04 октября 2008

Я совершенно новичок в SQL. У меня есть простой запрос выбора, подобный этому:

SELECT COUNT(col1) FROM table1

В таблице содержится около 120 записей, которые отображаются на GUI. По какой-то причине этот запрос всегда возвращает число, которое меньше фактического числа.

Может кто-нибудь помочь мне?

Ответы [ 4 ]

17 голосов
/ 04 октября 2008

Попробуйте

select count(*) from table1

Редактировать: Чтобы пояснить подробнее, count(*) дает вам количество строк для таблицы, включая дубликаты и нули. count(isnull(col1,0)) будет делать то же самое, но немного медленнее, поскольку isnull должен оцениваться для каждой строки.

13 голосов
/ 04 октября 2008

В столбце col1 могут быть нулевые значения. Агрегатные функции игнорируют нули. попробуйте это

SELECT COUNT(ISNULL(col1,0)) FROM   table1
1 голос
/ 07 октября 2008

Слегка тангенциальная, но есть и полезная

SELECT count(distinct cola) from table1

, который дает вам номер отдельного столбца в таблице.

0 голосов
/ 10 октября 2018

Вы получаете правильный счет

Согласно https://docs.microsoft.com

COUNT (*) возвращает количество элементов в группе. Это включает в себя значения NULL и дубликаты.

COUNT (выражение ALL) вычисляет выражение для каждой строки в группе и возвращает количество ненулевых значений.

COUNT (выражение DISTINCT) вычисляет выражение для каждой строки в группе и возвращает число уникальных ненулевых значений.

В вашем случае вы передали имя столбца в COUNT, поэтому вы получите количество ненулевых записей , теперь вы находитесь в своих табличных данных, и у вас могут быть нулевые значения в данном столбце (col1)

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...