我有一个包含2个字段的表
x y
---- ----
1 null
2 5
3 5
4 null
5 null
6 10
7 5
我的SQLite查询是
select y,count(y)
from mytable
group by y
结果是
null 0
5 3
10 1
预计会看到null 3.
但输出为空0.
这是什么意思?
答案 0 :(得分:14)
From Aggregate Functions in SQLite
count(X)函数返回组中X不为NULL的次数。 count(*)函数(不带参数)返回组中的总行数。
因此,COUNT
函数不计算NULL
,因此请使用COUNT(*)
代替COUNT(y)
。
SELECT y, COUNT(*) AS COUNT
FROM mytable
GROUP BY y
或者您也可以像这样使用COUNT(x)
。
SELECT y, COUNT(x) AS COUNT
FROM mytable
GROUP BY y
答案 1 :(得分:0)
您可以在SQL中使用isnull,它为所有空值赋予不同的标识
只需运行以下查询,即可获得所需的结果
Select y,count(isnull(y,-1)) as [Count]
from mytable
group by y