程序员一代码搬运工
【Java学习心得和Java学习技术个人总结】

MySQL的group by 语句中,能否对count的元素进行筛选,在count(1)的同时,也对某个字段count符合条件的数量

作者:知乎用户
链接:https://www.zhihu.com/question/22191084/answer/150687850
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

用三种方法实现:

1、select sid ,count(1) ,sum(case when type > 0 then 1 else 0 end) from t_170309 group by sid

其实你自己的理解最接近于这个case when的语法

2、简洁的语法,可用count(condition or null)

select sid ,count(1) ,count(type>0 or null) from t_170309 group by sid;

3、避开count,用sum(if(condition,value1,value2))来实现

if函数是指,如果条件成立则返回value1,否则value2,所以这个思路类似于方法1

select sid ,count(1) ,sum(if(type>0 ,1,0 )) from t_170309 group by sid

赞(1)
未经允许不得转载:程序员一代码搬运工 » MySQL的group by 语句中,能否对count的元素进行筛选,在count(1)的同时,也对某个字段count符合条件的数量
分享到: 更多 (0)