34,575
社区成员
发帖
与我相关
我的任务
分享
select COUNT(*),
COUNT(1),
COUNT(0),
COUNT(100),
COUNT(v)
from
(
select 1 as v union all
select 0 union all
select 2 union all
select null
)t
/*
(无列名) (无列名) (无列名) (无列名) (无列名)
4 4 4 4 3
*/
你会发现,前几个都一样,怎么最后一个是3呢,其实count对于括号中的数字,只要这个值不是null,都会统计为1次,也就是说count计算的次数,不是sum求和。
当有值为null时,那么是不统计的,所以这就是count(V)的值为3,因为v列中最后一行数据是null