表结构(T):<table>
name status
a 1
a 1
a 0
b 1
b 1
c 1
</table>查询:select name,count(1)  as count from T group by name;结果:a 3
b 2
c 1查询:select count(1) from T where status=1 group by name;结果:2
2
0如何将这2个结果集合并成一个:a 3 2
b 2 2
c 1 0

解决方案 »

  1.   

    我需要一个不按status条件查询的分组数量,还要一个status=1的分组数量
    我想把这两个结果集拼成一个结果集返回给后台,不想分两次返回
      

  2.   

    集合一:
    select name,count(1)  as count from T group by name;
    集合二:
    select name,count(1) from T where status=1 group by name;再按name进行连接
      

  3.   

    select  name,count(1) ,sum(status)
    from T 
    group by name;
      

  4.   

    感觉这方法好巧
    版主,假如status是其他种类的字段,不能用sum的话该如何写
      

  5.   

    sum(if(x='aa',1,0)
      

  6.   

    select a.name,a.count,b.count(1)
    from  (select name,count(1)  as count from T group by name)as a , 
               (select name,count(1) from T where status=1 group by name)  as b
    where a.name=b.name;