超详细的5个Oracle数据库分组函数总结
副问题[/!--empirenews.page--]
概述 本日首要分享下Oracle数据库分组函数group by 、 rollup、cude、grouping 、grouping sets的常用用法,以下以Oracle自带schema做演示。 1、group by的行使--按照DEPTNO和JOB举办分组。求沟通DEPTNO,沟通JOB的员工人为总和。 2、group by 共同rollup的行使 rollup()--可以行使一个可能多个参数。意思是从右向左举办数据的汇总统计,并天生一行,rollup是个统计函数。 以下是按照分组环境举办统计,最终举办所有汇总。 (1)简朴的行使rollup--天生一行新数据。(要天生新的一行数据,还可以行使UNION ALL)
(2)先按照E.DEPTNO,E.JOB举办分组,然后从右向左
针对以上的行使ROLLUP的功效的领略: a:起首按照GROUP BY E.DEPTNO,E.JOB查询出9条数据(除4,8,12,13外),在按照rollup的界说,从右向左,对ROLLUP中的参数举办小计 起首按照JOB(对全部的JOB举办汇总),汇总出4,8,12行,在按照E.DEPTNO(对全部的DEPTNO举办汇总),汇总出第十三行数据。 (3) 非凡环境
领略:起首按照GROUP BY E.DEPTNO,E.JOB查询出前九条数据,其次对E.DEPTNO举办汇总,可是必需思量JOB,也就是沟通的JOB,的全部的人为总和,以是呈现下面五条数据。 3、group by 共同cube的行使
领略:CUBE会对前提中的每一个前提举办单独的汇总:即对单独的罗列办汇总 GROUP BY CUBE(E.DEPTNO,E.JOB)起首按照:GROUP BY E.DEPTNO,E.JOB查询数据,其次对E.JOB举办汇总(不思量DEPTNO,单独汇总,而ROLLUP是在统一个DEPTNO下面)再对E.DEPTNO举办汇总,最后所有汇总。 4、GROUPING 的行使 GROUPING函数可以接管一列,返回0可能1。假如列值为空,那么GROUPING()返回1;假如列值非空,那么返回0。GROUPING只能在行使ROLLUP或CUBE的查询中行使。当必要在返回空值的处所表现某个值时,GROUPING()就很是有效。
可以行使decode可能case函数举办转换这种不友爱的表现:
5、grouping sets提供了指定汇总荟萃前提的成果 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |