rollup函式

oracle_mao發表於2016-04-07
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操作。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24500180/viewspace-2076825/,如需轉載,請註明出處,否則將追究法律責任。

相關文章