问题描述
|
SELECT User,COUNT(User) as count FROM Tests GROUP by User;
这可行。但是,如果某些用户行包含空值,则会得到以下信息:
User count
0
u1 5
u2 3
u3 9
如您所见,空值行显示为0计数,但实际上不是零。
SELECT * FROM测试WHERE IsNull(User)显示非零实际值。
这使我觉得我应该更改原始查询,以便可以正确计数空用户。
解决方法
改用
COUNT(*)
:
SELECT User,COUNT(*) AS count
FROM Tests
GROUP BY User;
从文档:
句法
计数(expr)
计数功能不计数
包含Null字段的记录,除非
expr是星号(*
)通配符
性格。如果您使用星号,
Count计算总数
记录,包括那些包含
空字段。 Count(
*)
相当
比Count([Column Name])
快