group by rollup(a,b,d)等同于group by grouping sets((a, b, d), (a,b), (a),( ) )
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,d,sum(c) from test2 group by rollup(a,b,d) order by a,b,d;
A B D SUM(C)
---------- ---------- ---------- ----------
A B E 1
A B 1
A C E 1
A C 1
A D F 5
A D 5
A 7
C D F 7
C D 7
C 7
14
11 rows selected
SQL> select a,b,d,sum(c) from test2 group by grouping sets((a, b, d), (a,b), (a),( ) ) order by a,b,d;
A B D SUM(C)
---------- ---------- ---------- ----------
A B E 1
A B 1
A C E 1
A C 1
A D F 5
A D 5
A 7
C D F 7
C D 7
C 7
14
11 rows selected
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8118583/viewspace-64865/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8118583/viewspace-64865/