我对SQL
完全不熟悉。我有一个类似于这的简单选择查询:
SELECT COUNT(col1) FROM table1
表格中有大约120条记录,显示在GUI
上。
出于某种原因,此查询始终返回一个小于实际计数的数字。
有人可以帮帮我吗?
答案 0 :(得分:17)
尝试
select count(*) from table1
修改:为了进一步说明,count(*)
为您提供了一个表的行数,包括重复项和空值。 count(isnull(col1,0))
会做同样的事情,但稍微较慢,因为必须为每一行评估isnull
。
答案 1 :(得分:13)
您可能在col1列中有一些空值。聚合函数忽略空值。 试试这个
SELECT COUNT(ISNULL(col1,0)) FROM table1
答案 2 :(得分:1)
略有切向,但也有用
SELECT count(distinct cola) from table1
,它给出了表中不同列的数量。
答案 3 :(得分:0)
您得到正确的计数
COUNT(*)返回一个组中的项目数。这包括NULL值和重复项。
COUNT(ALL表达式)为组中的每一行评估一个表达式,并返回非空值的数量。
COUNT(DISTINCT表达式)为组中的每一行求一个表达式,并返回唯一的非null 值的数量。
在您的情况下,您已在COUNT中传递了列名,这就是为什么您将获得非空记录的计数的原因,现在您在表数据中,给定列中可能具有空值(col1 )
希望这会有所帮助!