id    num      est
1      a        0
2      a        0
3      b        0
4      b        1
5      b        1
6      a        1
这句SQL怎么写按照num、和 est=1分类,
结果----------------   
          分类    num的个数 num中est为1的个数
1           a                   3              1
2           b                   3              2

解决方案 »

  1.   

    declare @T table(id int,num varchar(10),est int)
    insert into @t values(1 ,     'a'   ,    0)
    insert into @t values(2 ,     'a'    ,    0)
    insert into @t values(3 ,     'b'    ,    0)
    insert into @t values(4 ,     'b'    ,    1)
    insert into @t values(5 ,     'b'    ,    1)
    insert into @t values(6 ,     'a'   ,    1)
    select num,count(num) as num的个数,sum(est) as num中est为1的个数 from @T group by num 
    num        num的个数      num中est为1的个数 
    ---------- ----------- ------------ 
    a          3           1
    b          3           2如果要求num中est为x的个数则改为
    select num,count(num) as num的个数,sum(case est when x then 1 else 0 end) as num中est为x的个数 from @T group by num
      

  2.   

    select num,count(num) as num的个数,sum(case est when x then 1 else 0 end) as num中est为x的个数 from @T group by num