如数据为:
   a          b       c 
   a1         张三   100
   b1        李四    200
   c1         王五    300要求结果为:
    a           b       c 
   a1         张三     100
   b1         李四     200
   c1         王五     300
   合计                  600

解决方案 »

  1.   

    select *
                from t
              union
              select '合计', null, sum(c) from t;
      

  2.   


    with t1 as
    (
         select 'a1' a,'张三' b,100 c from dual union all
         select 'b1' a,'李四' b,200 c from dual union all
         select 'c1' a,'王五' b,300 c from dual
    )select nvl(a,'合计') a,b,c
    from 
    (
    select a,b,sum(c) c
    from t1
    group by rollup(a,b)
    )
    where not (a is not null and b is null)
         a     b     c
    --------------------------------
    1 a1 张三 100
    2 b1 李四 200
    3 c1 王五 300
    4 合计 600
      

  3.   


    不要小计,感觉用rollup 都大题小做了
      

  4.   


    select nvl(a, '合计'), b, sum(c) c from t1 group by rollup((a, b, c))
      

  5.   

    rollup和cube函数之一,是在group by 中运用的。