mysql 按条件 count 获取记录数的三种方式,统计sub_type='REFUND_FEE’ 的记录数:
方法一.select count(sub_type) from t where t.sub_type='REFUND_FEE’;
常规where条件来实现 count
方法二.select sum(if( B.sub_type='REFUND_FEE’ ,1,0)) from t;
使用 sum来实现count记录数
方法三.select count(B.sub_type=‘REFUND_FEE’ or null) from t;
要着重介绍的就是这个方法三
大家都知道 count 参数无论是0还是1,true还是false都会记一次,但是count(null)就是0。
当B.sub_type等于‘REFUND_FEE’时 就相当于count(true),就会记一次,当B.sub_type 不等于‘REFUND_FEE’就相当于count(null),不会记数。
注意:count(列名)时是不会统计null的个数的,count(*)和count(1)会把null的个数也统计在内