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

id sid type 1 1 0 2 1 1 3 1 1 相像中的语句是这样的: select sid, count(1), count(type …
关注者
24
被浏览
38,566

12 个回答

理解下楼主的需求应该是在分组中想求另一列满足某种条件的情况下的列数,这是一个典型的window function很遗憾,MySQL到现在还不支持二次聚集。但是这个需求可以用子查询的方式来做到

select sid,count(*),count(case when type>0 then 1 end) from table group by sid