在查询中不计入空行

时间:2011-05-30 08:19:53

标签: sql ms-access

SELECT User, COUNT(User) as count FROM Tests GROUP by User;

这很有效。但是,如果某些用户行包含空值,我会得到以下内容:

User    count
        0
u1      5
u2      3
u3      9

如您所见,空值行显示0计数,但是,它实际上不是零。

SELECT * FROM Tests WHERE IsNull(User)显示非零实际值。 这让我觉得我应该更改我的原始查询,以便用户将被正确计算。

1 个答案:

答案 0 :(得分:6)

改为使用COUNT(*)

  SELECT User, COUNT(*) AS count 
    FROM Tests 
GROUP BY User;

来自documentation

  

<强>语法
   Count(expr)

     

计数功能不计算在内   除非有Null字段的记录   expr是星号(*)通配符   性格。如果使用星号,   Count计算总数   记录,包括那些包含的记录   空领域。 Count( * )非常重要   快于Count([Column Name])