求教
select  A,B,C,D,E from emp
group by rollup(A,B),(C,D),E类似于这种语句表示什么意思??求大神指点!!!!

解决方案 »

  1.   


    SQL> 
    SQL> create table test(
      2      a varchar(10),
      3      b varchar(10),
      4      c varchar(10),
      5      d varchar(10),
      6      e int,
      7      f int
      8  );
    Table created
    SQL> begin
      2      insert into test values('A1', 'B1', 'C1', 'D1', 100, 100);
      3      insert into test values('A1', 'B2', 'C1', 'D1', 200, 200);
      4      insert into test values('A2', 'B1', 'C1', 'D1', 300, 100);
      5  end;
      6  /
    PL/SQL procedure successfully completed
    SQL> select a, b, c, d, sum(e), sum(f) from test group by rollup(a, b), c, d;
    A          B          C          D              SUM(E)     SUM(F)
    ---------- ---------- ---------- ---------- ---------- ----------
    A1         B1         C1         D1                100        100  -- A1, B1 汇总
    A1         B2         C1         D1                200        200  -- A1, B2 汇总
    A1                    C1         D1                300        300  -- A1 汇总
    A2         B1         C1         D1                300        100  -- A2, B1 汇总
    A2                    C1         D1                300        100  -- A2 汇总
                          C1         D1                600        400  -- 总合计行
    6 rows selected
    SQL> drop table test purge;
    Table droppedSQL> 
      

  2.   

    http://blog.itpub.net/519536/viewspace-610995/写的挺好的。
      

  3.   

    Group by rollup(A ,B)
    产生的分组种数:3种;
    第一种:group by A,B
    第二种:group by A
    第三种:group by NULL
    (说明:本没有group by NULL 的写法,在这里指是为了方便说明,而采用之。含义是:没有分组,也就是所有数据做一个统计。例如聚合函数是SUM的话,那就是对所有满足条件的数据进行求和。此写法的含义下同)
    返回结果集:为以上三种分组统计结果集的并集且未去掉重复数据。
    Group by rollup(A ,B,C)
    产生的分组种数:4种;
    第一种:group by A,B,C
    第二种:group by A,B
    第三种:group by A
    第四种:group by NULL
      

  4.   

    就是分组之后的统计里有一个汇总统计,如Group by rollup(A ,B)
    先将相同A和B的记录汇总,然后再将相同A的记录再汇总,最后就是将所有数据汇总