oracle rollup,cube子句的應用舉例(可以實現總計,小計)
rollup,cube子句在ORACLE中可以用來做交叉報表,如:如總計,小計類的功能很容易實現;但是必須和group by 子句一起使用。舉例如下:
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/9294812/viewspace-918856/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle rollup,cube子句的應用舉例;Oracle
- ORACLE ROLLUP和CUBE的使用Oracle
- Oracle OCP(12):ROLLUP & CUBEOracle
- 設計模式應用舉例設計模式
- Oracle的rollup、cube、grouping sets函式Oracle函式
- Spark2 Dataset多維度統計cube與rollupSpark
- [SQL] rollup & cube 分組函式用法及一例SQL函式
- MySQL ROLLUP和CUBE問題MySql
- 執行緒池的實現原始碼及應用舉例執行緒原始碼
- 分析函式rollup||cube學習函式
- rollup cube 超匯聚函式函式
- oracle group by中cube和rollup字句的使用方法及區別Oracle
- SQLLOAD應用舉例SQL
- 舉例說明Oracle資料庫審計的用法Oracle資料庫
- 設計用例的方法總結
- Redis應用一例(存證數量用計數器實現)Redis
- oracle10g後面的聚合運算函式:cube、rollup等Oracle函式
- golang Context應用舉例GolangContext
- JAVA物件導向高階:static的應用知識--單例模式 單例設計模式應用場景及好處 單例設計模式的實現方式Java物件單例設計模式
- group by分組函式之rollup與cube用法函式
- Linux系統程式設計(18)——正規表示式實用舉例Linux程式設計
- 設計模式之依賴倒置原則含義及現實舉例設計模式
- Cube 技術解讀 | Cube 渲染設計的前世今生
- 用Python實現設計模式——單例模式Python設計模式單例
- Java在量化投資等金融業的關鍵應用舉例 - oracleJavaOracle
- 解析數倉OLAP函式:ROLLUP、CUBE、GROUPING SETS函式
- GROUP BY中ROLLUP/CUBE/GROUPING/GROUPING SETS使用示例
- Lotus C API Extension Manager 應用舉例API
- Oracle實現統計Oracle
- 寒假專案3-應用列舉(設計)
- 神奇的 SQL ,同時實現小計與合計,閣下該如何應對SQL
- 輔助Cube建模的程式設計程式設計
- 實驗6 C語言結構體、列舉應用程式設計C語言結構體程式設計
- 混合現實設計:火星計劃頭戴裝置配套應用的設計心得
- 再談多型--多型的應用舉例: (轉)多型
- R語言中管道符號 %>% 的應用 及 舉例R語言符號
- AC-DMIS測量程式應用舉例
- 並查集(Union-Find) 應用舉例並查集