oracle rollup,cube子句的應用舉例;
rollup,cube子句在ORACLE中可以用來做交叉報表,如:如總計,小計類的功能很容易實現;但是必須和group by 子句一起使用。舉例如下:
[@more@]Oracle的Cube,Rollup子句的用法
產生交叉報表的情況,演示一個cube的例子
create table test(sales varchar2(10),dest varchar2(10),revenue number);
insert into test values('smith','hangzhou',1000);
insert into test values('smith','wenzhou',2000);
insert into test values('allen','wenzhou',3000);
insert into test values('allen','wenzhou',4000);
SALES DEST REVENUE
---------- ---------- ----------
smith hangzhou 1000
smith wenzhou 2000
allen wenzhou 3000
allen wenzhou 4000
比如說我們想統計每個sales的總銷售收入,每個sales在各個城市的銷售收入,另外還想知道每個城市所有sales的銷售收入總額,以及所有sales的總收入
就像以下報表
名字 hangzhou wenzhou 總計
------- ------------ ----------- ---------
allen 7000 7000
smith 1000 2000 3000
1000 9000 10000
那我們執行下面這條語句就行了
select sales,dest,sum(revenue) from test group by cube(sales,dest);
SALES DEST SUM(REVENUE)
---------- ---------- ------------
10000 所有sales的總銷售收入
wenzhou 9000 所有sales在溫州的銷售收入
hangzhou 1000 所有sales在杭州的銷售收入
allen 7000 allen的所有銷售收入
allen wenzhou 7000 allen在溫州的銷售收入
smith 3000 smith所有的銷售收入
smith wenzhou 2000 smith在溫州的銷售收入
smith hangzhou 1000 smith在杭州的銷售收入
8 rows selected.
如果不想統計城市這個維度,那麼用rollup子句
hangzhou wenzhou
allen 7000
7000
smith 1000 2000
3000
10000
select sales,dest,sum(revenue) from test group by rollup(sales,dest)
SALES DEST SUM(REVENUE)
---------- ---------- ------------------
allen wenzhou 7000 allen在溫州的銷售收入
allen 7000 allen的所有銷售收入
smith wenzhou 2000 smith在溫州的銷售收入
smith hangzhou 1000 smith在杭州的銷售收入
smith 3000 smith 所有的銷售收入
10000 所有sales的總銷售收入
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8109090/viewspace-910416/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle rollup,cube子句的應用舉例(可以實現總計,小計)Oracle
- ORACLE ROLLUP和CUBE的使用Oracle
- Oracle OCP(12):ROLLUP & CUBEOracle
- Oracle的rollup、cube、grouping sets函式Oracle函式
- [SQL] rollup & cube 分組函式用法及一例SQL函式
- MySQL ROLLUP和CUBE問題MySql
- 分析函式rollup||cube學習函式
- rollup cube 超匯聚函式函式
- oracle group by中cube和rollup字句的使用方法及區別Oracle
- SQLLOAD應用舉例SQL
- oracle10g後面的聚合運算函式:cube、rollup等Oracle函式
- 設計模式應用舉例設計模式
- golang Context應用舉例GolangContext
- group by分組函式之rollup與cube用法函式
- Java在量化投資等金融業的關鍵應用舉例 - oracleJavaOracle
- 解析數倉OLAP函式:ROLLUP、CUBE、GROUPING SETS函式
- GROUP BY中ROLLUP/CUBE/GROUPING/GROUPING SETS使用示例
- Lotus C API Extension Manager 應用舉例API
- Spark2 Dataset多維度統計cube與rollupSpark
- 再談多型--多型的應用舉例: (轉)多型
- R語言中管道符號 %>% 的應用 及 舉例R語言符號
- AC-DMIS測量程式應用舉例
- 並查集(Union-Find) 應用舉例並查集
- WebSphere Remote Server 簡介及其應用舉例WebREMServer
- ORACLE外部表的應用例項Oracle
- oracle resource manager (ORM)舉例OracleORM
- 【CUBE】Oracle分組函式之CUBE魅力Oracle函式
- 輕鬆搭建基於 Serverless 的 Go 應用(Gin、Beego 舉例)ServerGo
- mssql sqlserver in 關鍵字在值為null的應用舉例SQLServerNull
- 常用的Linux可插拔認證模組(PAM)應用舉例Linux
- 執行緒池的實現原始碼及應用舉例執行緒原始碼
- oracle SQL with 子句OracleSQL
- 正規表示式理解及簡單應用舉例
- 樂觀鎖與悲觀鎖及應用舉例
- 【ROLLUP】Oracle分組函式之ROLLUP魅力Oracle函式
- 並查集(Union-Find) 應用舉例 --- 基礎篇並查集
- oracle 建立檢視用 with check option 子句詳解Oracle
- Python偏函式應用舉例-路燈指示牌Python函式