现有一张表 t(HH number,GG varchar2(10),CC number)
有记录如下:
10,‘AA’,100;
10,  'AA',  200;
10,  'BB',  50;
20,  ‘AA',  20;
20    'AA',  10;
如何能统计出如下结果:
10  AA    100
    AA    200
    合计  300
10  BB    50
    合计  50
20  AA    20
    AA    10
    合计  30
合计      400

解决方案 »

  1.   

    idle>select to_char(hh), to_char(gg), cc from testg
      2  union all
      3  select to_char(hh), '合计', sum(cc) from testg group by hh, gg
      4  union all
      5  select '合计', '合计', sum(cc) from testg ;TO_CHAR(HH)                              TO_CHAR(GG         CC
    ---------------------------------------- ---------- ----------
    10                                       AA                100
    10                                       AA                200
    10                                       BB                 50
    20                                       AA                 20
    20                                       AA                 10
    10                                       合计              300
    10                                       合计               50
    20                                       合计               30
    合计                                     合计              380已选择9行。楼主最后的合计怎么得到400的不清楚?
      

  2.   

    select hh,
           gg,
           sum(cc)
    from 表
    group by rollup(hh,gg)