SQL中的count()函数使用条件筛选计数的方法

如例子所示,可以直接在括号内进行条件判断,但需要加上”or null“。

        因为 当 standard不是标准化成功时 ,standard='标准化成功'结果false 不是 NULL,

        Count在 值是NULL是 不统计数, (count('任意内容')都会统计出所有记录数,因为count只有在遇见null时不计数,即count(null)==0,因此前者单引号内不管输入什么值都会统计出所有记录数)至于加上or NULL , 很像其他编程里的or运算符,第一个表达式是true就是不执行or后面的表达式,第一个表达式是false 执行or后面的表达式 。当standard不是标准化成功时standard='标准化成功' or NULL 的结果是NULL,Count才不会统计上这条记录数。

SELECT 
network_type,count(*) as total ,
count(T2ID) as T2,
count(standard='标准化成功' or null) as S1
FROM count_sum
GROUP BY network_type
) as sum;

你可能感兴趣的:(SQL,sql,数据库,database)