Select a,b,
       nvl(sum(decode(c,'11',1)),0)As 11的件数,
       nvl(sum(decode(c,'21',1)),0)As 21的件数,
       nvl(sum(decode(c,'31',1)),0)As 31的件数
  From table
 Group By a,b

解决方案 »

  1.   

    select a,b,sum(decode(c,'11',1,0)) 11的件数,
               sum(decode(c,'21',1,0)) 21的件数,
               sum(decode(c,'31',1,0)) 31的件数
    from table
    group by a,b
      

  2.   

    不是啊,如果等于31的数据还要加上另外的条件,就是说等于31,而且这条数据还要另外在一个数据集里,decode不可以实现啊.还有别的方法吗.
      

  3.   

    不是啊,如果等于31的数据还要加上另外的条件,就是说等于31,而且这条数据还要另外在一个数据集里,decode不可以实现啊.还有别的方法吗.
    +++++++++++
    啥意思啊?看不懂,一楼的查询结果就是你要的数据啊
      

  4.   

    如果是Oracle 9以上版本,可以用case when :select 
        a,
        b,
        sum(case when c = 11 then 1 else 0 end) 11的件数,
        sum(case when c = 21 then 1 else 0 end) 21的件数,
        sum(case when c = 31 and ...[其他条件] then 1 else 0 end) 31的件数
    from table
    group by a,b