日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

group by 高級函數(shù)使用

 老張的菜地 2020-03-15

在使用group by常用的基本函數(shù)包括min,max,avg,sum,count等,除了基本函數(shù)oracle中提供了一些高級分組函數(shù),

Rollup,Cube,Grouping,Grouping set,下面做詳細(xì)介紹:

rollup可以對分組列表中的首字段進(jìn)行再進(jìn)行分組統(tǒng)計(jì),例如

SELECT dep_id, job_id , SUM(salary) FROM emp GROUP BY ROLLUP(dep_id,job_id);

不僅會按照dep_id,job_id整體進(jìn)行分組,還會對dep_id進(jìn)行分組,以及(),即所有record進(jìn)行計(jì)算。

cube對分組列表中的所有字段組合進(jìn)行rollup

SELECT dep_id, job_id , SUM(salary) FROM emp GROUP BY CUBE(dep_id,job_id);

grouping返回0或1,表示當(dāng)前是否使用某字段進(jìn)行了分組統(tǒng)計(jì),在rollup或cube語句中

SELECT dep_id, job_id , SUM(salary),GROUPING(dep_id), GROUPING(job_id) FROM emp GROUP BY CUBE(dep_id,job_id) ORDER BY dep_id,job_id;

grouping set可以對多個分組集合進(jìn)行一起分組計(jì)算,但只需一次load表的數(shù)據(jù),其結(jié)果相當(dāng)于union all 單個分組結(jié)果。

SELECT dep_id, job_id , SUM(salary) FROM emp GROUP BY GROUPING SETS(dep_id,job_id,(dep_id,job_id));

SELECT dep_id, job_id , SUM(salary) FROM emp GROUP BY GROUPING SETS((dep_id,job_id),(dep_id),());和SELECT dep_id, job_id , SUM(salary) FROM emp GROUP BY ROLLUP(dep_id,job_id);結(jié)果是等價的。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多