因为 当 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;