create table myTab(
myBool number(1),
myPro varchar2(10)
)
insert into myTab values(1,'a');
insert into myTab values(1,'b');
insert into myTab values(0,'c');
insert into myTab values(1,'d');
insert into myTab values(0,'c');
insert into myTab values(1,'b');
insert into myTab values(0,'b');
insert into myTab values(1,'d');
insert into myTab values(1,'b');
insert into myTab values(0,'b');
insert into myTab values(0,'c');select myPro,sum(decode(myBool ,'0',1,'1','1'))Bo0lall   , sum(decode(myBool ,'0',1)) Bool0,sum(decode(myBool ,'1',1)) Bool1
 from myTab group by myPro;
我刚学会,练练,呵呵

解决方案 »

  1.   

    select a.myPro,count(a.myBool) Bool0,count(b.myBool) Bool1 from myTab a,myTab b
    where a.myPro=b.myPro and a.myBool=0 and b.myBool=1
    group by a.myPro
      

  2.   

    viely() 做的完全正确,呵呵
      

  3.   

    把viely的查询改为这样就更完美了!
    select myPro,sum(decode(myBool ,'0',1,'1','1'))Bo0lall   , sum(decode(myBool ,'0',1,0)) Bool0,sum(decode(myBool ,'1',1,0)) Bool1
     from myTab group by myPro;
      

  4.   

    SELECT MYPRO ,COUNT(MYPRO) Bo0lall,SUM(DECODE(MYBOOL,'0','1','1','0')) Bool0 ,SUM(MYBOOL) Bool0 FROM mytab GROUP BY mypro