SQL> select * from test2;
A B C D
---------- ---------- ------------ ----------
A B 1.00 E
A C 1.00 E
A D 2.00 F
A D 3.00 F
C D 3.00 F
C D 4.00 F
6 rows selected
SQL> SELECT A,B,SUM(C),grouping_id(a,b,d) FROM TEST2 group by GROUPing sets((a,b,d),A,b,());
A B SUM(C) GROUPING_ID(A,B,D)
---------- ---------- ---------- ------------------
A B 1 0
A C 1 0
A D 5 0
C D 7 0
A 7 3
C 7 3
B 1 5
C 1 5
D 12 5
14 7
10 rows selected
grouping_id是对(A,B,D)用二进制指示当前行是哪些列的合计,上例中,最后一行的GROUPING_ID(A,B,D)为7,表示二进制的111的数字7,表示为A,B,D三列求GROUP
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8118583/viewspace-64863/,如需转载,请注明出处,否则将追究法律责任。