oracle group by的按照不同粒度聚合方法
一直以為group by 除了rollup和cube可以按照子句中指定的欄位進行不同粒度的聚合,沒有其他的方法了。今天因為groupby的bug(hash group b y)而發現了另一種方法,如下例:
with tmp as(
select '0001' userno, '01' pno from dual union all
select '0001' userno, '01' pno from dual union all
select '0001' userno, '02' pno from dual union all
select '0002' userno, '01' pno from dual union all
select '0002' userno, '03' pno from dual union all
select '0003' userno, '03' pno from dual)
select grouping_id(userno, pno) gid, userno, pno, count(1) cnt
from tmp
group by grouping sets((), (userno), (userno, pno))
其意義在於,我如果需要按照指定粒度進行彙總,而不用rollup或cube那種全組合的粒度,就可以用這種方式。
參考文件連線:
with tmp as(
select '0001' userno, '01' pno from dual union all
select '0001' userno, '01' pno from dual union all
select '0001' userno, '02' pno from dual union all
select '0002' userno, '01' pno from dual union all
select '0002' userno, '03' pno from dual union all
select '0003' userno, '03' pno from dual)
select grouping_id(userno, pno) gid, userno, pno, count(1) cnt
from tmp
group by grouping sets((), (userno), (userno, pno))
其意義在於,我如果需要按照指定粒度進行彙總,而不用rollup或cube那種全組合的粒度,就可以用這種方式。
參考文件連線:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-722900/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql 行級鎖(按照粒度分類)MySql
- sql case when, Exist ,group by ,聚合SQL
- Tableau的計算欄位、粒度、聚合、比率、表計算
- Oracle SGA中的Granule(粒度)Oracle
- oracle細粒度審計Oracle
- Oracle GroupOracle
- oracle審計-細粒度(轉)Oracle
- oracle 細粒度審計(fga)Oracle
- Oracle Hash Group ByOracle
- Oracle group by使用Oracle
- 按照oracle效能改進方法論的步驟來優化系統!Oracle優化
- 伺服器的種類可以按照不同的屬性劃分伺服器
- Oracle OCP(52):細粒度審計Oracle
- oracle group by中cube和rollup字句的使用方法及區別Oracle
- 【函式】Oracle中聚合函式rank()使用方法函式Oracle
- Oracle Column Group StatisticsOracle
- Oracle中group by用法Oracle
- 聚合函式及分組與過濾(GROUP BY … HAVING)函式
- 按照名字殺死程式的四種方法
- oracle 字串 聚合 sumOracle字串
- HybridDBPostgreSQL”Sort、Group、distinct聚合、JOIN”不懼怕資料傾斜的黑科技和原理-多階段聚合SQL
- Oracle不同檔案丟失/損壞的恢復方法Oracle
- oracle partition by group by,詳解partition by和group by對比Oracle
- Oracle ASM spfile in a disk groupOracleASM
- SQL247 按照dept_no進行彙總(group_concat(X,Y))SQL
- Python利用partial偏函式生成不同的聚合函式Python函式
- oracle中distinct和group by的區別Oracle
- ORA-00937: not a single-group group function的解決方法Function
- ORACLE FGAC(細粒度許可權控制)(轉)Oracle
- Oracle多粒度封鎖機制研究2Oracle
- Oracle多粒度封鎖機制研究1Oracle
- Oracle多粒度封鎖機制研究(zt)Oracle
- Elasticsearch 查詢結果分組統計,聚合檢索(group by stats)Elasticsearch
- 3.1 - Laravel - 5.6 - Route - Group方法Laravel
- grep搜尋伺服器日誌(搜尋指定關鍵字的行,按照日期group by count)伺服器
- SQL改寫的方法,select group by sumSQL
- oracle全文索引之SECTION GROUP_6_PATH_SECTION_GROUPOracle索引
- oracle全文索引之SECTION GROUP_5_AUTO_SECTION_GROUPOracle索引