rollup函数
SQL> SELECT TEMPORARY, COUNT(*) FROM T GROUP BY ROLLUP(TEMPORARY);
T COUNT(*)
- ----------
N 67132
Y 79
67211
SQL> SELECT TEMPORARY, COUNT(*) FROM dba_objects GROUP BY (TEMPORARY);
T COUNT(*)
- ----------
Y 79
N 67132
这里可以看到其实有rollup函数,就是多了一个全表的统计。
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是Group by ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。
SQL> SELECT TEMPORARY, COUNT(*) FROM T GROUP BY ROLLUP(TEMPORARY);
T COUNT(*)
- ----------
N 67132
Y 79
67211
SQL> SELECT TEMPORARY, COUNT(*) FROM dba_objects GROUP BY (TEMPORARY);
T COUNT(*)
- ----------
Y 79
N 67132
这里可以看到其实有rollup函数,就是多了一个全表的统计。
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是Group by ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24500180/viewspace-2076825/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24500180/viewspace-2076825/