[SQL] rollup & cube 分組函式用法及一例
rollup
First, it calculates the standard aggregate values specified in the GROUP BY clause. Then, it creates progressively higher-level subtotals, moving from right to left through the list of grouping columns. Finally, it creates a grand total.
n+1次superaggregate combinations
select grouping(owner),grouping(object_type),owner,object_type,count(*) from gc.test
group by rollup(owner,object_type)
order by owner;
先對owner,object_type分組,再對owner分組(也就是小計),最後再合計,
grouping可看到小計級別。
如果rollup(a,b,c),那就先對a,b,c分組,再對a,b分組,再對a分組,最後再合計。
cube
cube(a,b,c),順序先a,b,c 再a,b 再a,c 再a 再b,c 再b 再c 再合計
It produces 2的n次方 possible superaggregate combinations, if the n columns and expressions are specified
in the GROUP BY clause.
注:The HAVING,GROUP BY clause conditions can’t use aliases for the columns.
But ORDER BY clause can use aliases.
SQL一例,按分鐘先小計,再按小時合計:
select grouping(TO_CHAR(CREATED,'yyyy-mm-dd hh24')),grouping(TO_CHAR(CREATED,'yyyy-mm-dd hh24:mi')),
TO_CHAR(CREATED,'yyyy-mm-dd hh24'),TO_CHAR(CREATED,'yyyy-mm-dd hh24:mi'),count(1) from dba_objects
group by rollup(TO_CHAR(CREATED,'yyyy-mm-dd hh24'),TO_CHAR(CREATED,'yyyy-mm-dd hh24:mi'))
order by TO_CHAR(CREATED,'yyyy-mm-dd hh24')
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25583515/viewspace-2146923/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- group by分組函式之rollup與cube用法函式
- 【CUBE】Oracle分組函式之CUBE魅力Oracle函式
- 【ROLLUP】Oracle分組函式之ROLLUP魅力Oracle函式
- 分析函式rollup||cube學習函式
- rollup cube 超匯聚函式函式
- MySQL8.0-分組函式ROLLUP的基本用法(GROUPING)MySql函式
- Oracle的rollup、cube、grouping sets函式Oracle函式
- 解析數倉OLAP函式:ROLLUP、CUBE、GROUPING SETS函式
- MySQL資料庫中的分組函式ROLLUPMySql資料庫函式
- oracle10g後面的聚合運算函式:cube、rollup等Oracle函式
- rollup函式函式
- Oracle OCP(12):ROLLUP & CUBEOracle
- ORACLE ROLLUP和CUBE的使用Oracle
- MySQL ROLLUP和CUBE問題MySql
- SQL LEN()函式用法SQL函式
- Sql Server Rollup 語句的用法SQLServer
- oracle group by中cube和rollup字句的使用方法及區別Oracle
- PL/SQL表---table()函式用法SQL函式
- 聚合函式及分組與過濾(GROUP BY … HAVING)函式
- PHP 自定義函式用法及常用函式集合PHP函式
- oracle rollup,cube子句的應用舉例;Oracle
- Sql字串分組Split函式的兩種實現方法SQL字串函式
- Oracle的regexp_like函式用法一例Oracle函式
- oracle 高階分組group by cube擴充Oracle
- SQL函式Group_concat用法SQL函式
- 分析函式 - CUBE和GROUPING SETS函式
- MySQL 中 WITH ROLLUP 用法MySql
- 高效的SQL(函式索引優化VIEW一例)SQL函式索引優化View
- 分析函式 - ROLLUP和GROUPING SETS函式
- sql語句之分組,聚合函式SQL函式
- mysql與oracle的分組函式MySqlOracle函式
- 6、Oracle中的分組函式Oracle函式
- PL/SQL單行函式和組函式詳解(轉)SQL函式
- GROUP BY中ROLLUP/CUBE/GROUPING/GROUPING SETS使用示例
- Python assert斷言函式及用法Python函式
- 函式及分組統計和資料庫備份,恢復函式資料庫
- SQL中 CONVERT轉化函式的用法SQL函式
- SQL中CONVERT轉化函式的用法SQL函式