oracle group by 两项,Oracle中group by 的扩展函数rollup、cube、grouping sets

Oracle的group by除了基本使用方法以外,还有3种扩展使用方法,各自是rollup、cube、grouping sets。分别介绍例如以下:

1、rollup

对数据库表emp。如果当中两个字段名为a,b,c。

假设使用group by rollup(a,b),首先会对(a,b)进行group by ,然后对 a 进行 group by 。最后对全表进行 group by 操作。

例如以下查询结果:

df2fafc3cc07295e54775c786cc71036.png

查询语句

Select deptno,job,sum(sal) from emp group by rollup(deptno,job);

等同于

Select deptno,job,sum(sal) from emp group by deptno,job

union all

Select deptno,null sum(sal) from emp group by deptno

union all

Select null,null,sum(sal) from emp (group by null )

2、cube

假设使用group by cube(a,b),,则首先会对(a,b)进行group by,然后依次是(a),(b),最后对全表进行group by 操作,一共是2^2=4次grouping

例如以下查询结果。

79fd44765dfa75efbd239efce45e61ee.png

查询语句

Select deptno,job,sum(sal) from emp group by cube(deptno,job);

等同于

Select deptno,job,sum(sal) from emp group by deptno,job

union all

Select deptno,null sum(sal) from emp group by deptno

union all

Select null,job, sum(sal) from emp group by job

union all

Select null,null,sum(sal) from emp (group by null )

3、grouping sets

grouping sets就是对參数中的每一个參数做grouping。假设使用group by grouping sets(a,b)。则对(a),(b)进行group by

例如以下查询结果:

3137651790a8b1962afb0b9d71ac5734.png

查询语句

Select deptno,job,sum(sal) from emp group by cube(deptno,job);

等同于

select null,job,sum(sal) from emp group by job

union all

select deptno,null,sum(sal) from emp group by deptno

4、grouping

使用grouping能够推断该行是数据库中本来的行,还是有统计产生的行。grouping值为0时说明这个值是数据库中本来的值。为1说明是统计的结果,參数仅仅有一个,并且必须为group by中出现的某一列

例如以下查询结果:

9f8761d8d301a5811f25c29a29afd662.png

查询语句

select deptno,job,sum(sal),grouping(deptno) a,grouping(job) b from emp group by rollup(deptno,job);

5、grouping_id

Grouping_id()的返回值事实上就是參数中的每列的grouping()值的二进制向量。假设grouping(a)=1,grouping(b)=1,则grouping_id(A,B)的返回值就是二进制的11。转成10进制就是3。

參数能够是多个,但必须为group by中出现的列。

查询结果例如以下:

eca7a289ad9c3e0515963807388d75db.png

查询语句

select deptno,job,sum(sal),grouping(deptno) a,grouping(job) b,grouping_id(deptno,job) from emp group by rollup(deptno,job);

6、group_id

GROUP_ID()唯一标识反复组,能够通过group_id去除反复组

查询结果例如以下:

4d96319be1cc1089f93493465469ee5a.png

查询语句

select deptno,job,sum(sal),group_id() from emp group by deptno, rollup(deptno,job) having group_id()=0;

Oracle中group by 的扩展函数rollup、cube、grouping sets

标签:net   rollup   oracle   jsb   from   产生   基本使用   log   font

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:http://www.cnblogs.com/yxysuanfa/p/6830388.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习基石13-Hazard of Overfitting

注: 文章中所有的图片均来自台湾大学林轩田《机器学习基石》课程。 笔记原作者:红色石头 微信公众号:AI有道 上节课主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型…

oracle执行计划的rows不对,Oracle执行计划——all_rows和first_rows(n)优化器模式

Oracle执行计划——all_rows和first_rows(n)优化器模式0. 环境创建[sql]SQL> create usertest identified by test2 default tablespace users3 temporary tablespace temp4 quota unlimited on users;User created.SQL> grant createsession, resource, alter session t…

从 MVC 到前后端分离

转载自:https://my.oschina.net/huangyong/blog/521891 从MVC到前后端分离 1.理解 MVC MVC是一种经典的设计模式,全名为Model-View-Controller,即模型-视图-控制器。其中,模型是用于封装数据的载体,例如,在…

在.NET中使用SMTP发送邮件

这是一篇转载,可能对大家很有用啊,放首页看看是否有参考价值。本文提到的方案仍然不能算是完全解决所有问题,最佳的dotNET下通过SMTP(带验证)发送邮件的机制是什么,不知道大家有什么好的看法! …

LeetCode || Copy List with Random Pointer

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null. Return a deep copy of the list. 思路1:最傻瓜的方法是首先遍历一次建立next关系的新list。然后第二次遍历处理random关系…

京东布局消费物联网 聚合产业链共建生态

据Gartner发布的数据显示,到2020年,全球联网设备数量将达260亿台,物联网市场规模将达1.9万亿美元。如今,互联网已经从人与人的连接发展到人与物、物与物的连接,物联网时代带来。 5月9日,京东聚合三大运营商…

Shell编程 之 for 循环

1. 语法结构 2. 案例 2.1 批量解压缩 #!/bin/bashcd /root/test/ ls *.tar.gz > ls.log ls *.tgz >> ls.logfor i in $( cat ls.log )dotar -zxf $i &> /dev/nulldone rm -rf ls.log ~ …

8、linux上安装hbase

1.基本信息 版本1.2.4安装机器三台机器账号hadoop源路径/opt/software/hbase-1.2.4-bin.tar.gz目标路径/opt/hbase -> /opt/hbase-1.2.4依赖关系无2.安装过程 1).使用hadoop账号解压到/opt/hadoop目录下并设置软连接: [rootbgs-5p173-wangwenting opt]# su hadoo…

Mountain Number FZU-2109数位dp

Mountain NumberFZU-2109 题目大意:一个大于0的数字x,分写成xa[0]a[1]a[2][3]..a[n]的形式,(比如x1234,a[0]1,a[1]2,a[3]3,a[3]4),Mountain Number要满足对于a[2*i1]要大于等于a[2*i]和a[2*i2],给定范围l,r…

oracle虚拟机字符集,更改虚拟机上的oracle字符集

修改oracle上边的字符集,需要用到DBA数据库管理员的权限,再修改字符集时要注意到修改后的字符集只能范围变大(例如:当前的字符集是GBK,那你修改后可以是UTF-8就是说后者只能比前者大,不能小.因为字符集都是向下兼容的)步骤:第一步:使用DBA身份登录先以绕过日志的方式登录在以然…

mybaits自连接查询

看不太懂,先记录再查,有没有大大解释下 resultmap里的collection设置select字段,看着像递归,没见过这种用法,#{pid}从何而来? 转载于:https://www.cnblogs.com/haon/p/10808739.html

Ajax爬取豆瓣电影目录(Python)

下面的分析相当于一个框架,搞懂之后,对于类似的文字爬取,我们也可以实现。就算不能使用Ajax方法,我们也能够使用相同思想去爬取我们想要的数据。 豆瓣电影排行榜分析 网址:https://movie.douban.com/explore#!typemovi…

正面管教PHP沙龙,正面管教沙龙体会

接触到正面管教这个理念是我们南宁行动派伙伴圈 的圈主西西给大家带来的分享,谢谢西西[爱你]图片发自简书App同时也很感谢亲切温柔,知性优雅的Liliane老师,让我明白表扬和鼓励的区别,非暴力教育……教书育人这个道路上我需要学习的…

20175223 MySQL

目录 完成结果要求 1 :导入world.sql要求 2 :CityWanna.javaCityWanna.java要求 3 :CountryWanna.javaCountryWanna.java要求 4 :LifeWanna.javaLifeWanna.java过程中问题及解决1. XAMPP无法启用 MySQL 程序。目录 完成结果 要求 …

2020运动相机推荐_2020年超有价值入门级微单相机推荐,超高性价比几款入门级微单相机(选购指南)...

学习摄影专业已经3年多啦,自己喜欢拍摄照片,自己还帮助过一些想学习摄影的朋友快速入门,最近发现周围学习摄影的朋友也越来越多了,有一些朋友咨询关于入门微单相机的问题,想让推荐几款不错的入门的微单相机。这篇文章带…

ioslabel阴影,UILabel的内阴影

is it possible to create such a UILabel with inner and outer shadow?i only know shadowColor and shadowOffsetzoomed:thanks!解决方案The answer by dmaclach is only suitable for shapes that can easily be inverted. My solution is a custom view that works with …

Android Coding利器之掌握小技巧,助你Coding更上一层楼~

本文讲的是Android Coding利器之掌握小技巧,助你Coding更上一层楼~,话说前几天在网上浏览到一大牛写的关于Android布局优化的文章,看后感触很深,回过头看看自己写过的代码,发现还是有不少需要改进,今天找不…

linux系统报警怎么办,常见Linux系统故障和解决方法

常见Linux系统故障和解决方法发布时间:2020-06-06 14:48:19来源:亿速云阅读:212作者:Leah栏目:云计算这篇文章给大家分享的是常见的Linux系统故障和解决方法。在使用系统的过程中总会有各种各样的故障,所以…

Vuex 模块化与项目实例 (2.0)

Vuex 强调使用单一状态树,即在一个项目里只有一个 store,这个 store 集中管理了项目中所有的数据以及对数据的操作行为。但是这样带来的问题是 store 可能会非常臃肿庞大不易维护,所以就需要对状态树进行模块化的拆分。 首先贴出一个逻辑比较…

一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)

1:Hadoop分布式计算平台是由Apache软件基金会开发的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。 注…