select prfnum,sum(decode(statuspro,2,1,0)) "statuspro=2",sum(decode(statuspro,1,1,0)) "stautspro=1" from tb group by prfnum;

解决方案 »

  1.   

    select prfnum ,
           sum(decode(statuspro,2,1,0)) as statuspro2 ,
           sum(decode(statuspro,1,1,0)) as statuspro1
    from
           表
    group by prfnum 
    order by prfnum
      

  2.   

    prfnum   statuspro
    1          2
    1          2
    1          2
    2          1
    2          2
    3          1
    3          1结果
    prfnum  statuspro=2 stautspro=1
    1             3         0
    2             1         1
    3             0         2
    select prfnum,sum(case when statuspro=2 then 1 else 0 end) "statuspro=2",sum(case when statuspro=1 then 1 else 0 end) "statuspro=1" from your_tablename group by prfnum
      

  3.   

    select prfnum,sum(decode(statuspro,2,1,0)) "statuspro=2",sum(decode(statuspro,1,1,0)) "stautspro=1" from tb group by prfnum;
      

  4.   

    建议写这种SQL时,尽量使用decode,decode在oracel中,会经常使用!功能很强大,可以深入研究