如例子所示,可以直接在括号内进行条件判断,但需要加上”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;