oracle分组-神奇的cube和rollup
先看代码:
表结构如下:
emp表
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
使用cube分组:
sql:select deptno,empno,count(empno),sum(sal) from emp group by cube(deptno,empno);
结果:
DEPTNO EMPNO COUNT(EMPNO) SUM(SAL)
---------- ---------- ------------ ----------
14 29025
7900 1 950
7369 1 800
7499 1 1600
7521 1 1250
7566 1 2975
7654 1 1250
7698 1 2850
7782 1 2450
7788 1 3000
7839 1 5000
7844 1 1500
7876 1 1100
7902 1 3000
7934 1 1300
10 3 8750
10 7782 1 2450
10 7839 1 5000
10 7934 1 1300
20 5 10875
20 7369 1 800
20 7566 1 2975
20 7788 1 3000
20 7876 1 1100
20 7902 1 3000
30 6 9400
30 7900 1 950
30 7499 1 1600
30 7521 1 1250
30 7654 1 1250
30 7698 1 2850
30 7844 1 1500
32 rows selected.
使用rollup:
sql:select deptno,empno,count(empno),sum(sal) from emp group by rollup(deptno,empno);
结果:
DEPTNO EMPNO COUNT(EMPNO) SUM(SAL)
---------- ---------- ------------ ----------
10 7782 1 2450
10 7839 1 5000
10 7934 1 1300
10 3 8750
20 7369 1 800
20 7566 1 2975
20 7788 1 3000
20 7876 1 1100
20 7902 1 3000
20 5 10875
30 7900 1 950
30 7499 1 1600
30 7521 1 1250
30 7654 1 1250
30 7698 1 2850
30 7844 1 1500
30 6 9400
14 29025
18 rows selected.
根据上面的结果,我们可以看出,cube相当于在rollup的基础上进行了功能扩展
就像是:rollup(a,b): 结果有(a,b),(a),()
cube(a,b):结果有(a,b),(a),(b),()
这仅是本人的一些心得,有失当的地方希望指点。。。
oracle分组-神奇的cube和rollup的更多相关文章
- 【转】【CUBE】Oracle分组函数之CUBE魅力
http://blog.itpub.net/519536/viewspace-610997/ Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手. 关于ROLLUP的查 ...
- Oracle分组函数之CUBE魅力
Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手. 关于ROLLUP的查询统计功能请参考文章<Oracle分组函数之ROLLUP魅力>(http://www ...
- oracle group by中cube和rollup字句的使用方法及区别
oracle group by中rollup和cube的区别: Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句. 如果是ROLLUP(A, B, C)的话,先 ...
- Oracle分组函数之CUBE
功能介绍: 首先是进行无字段的聚合,然后依次对每个字段进行聚合 创建表: 插入测试数据: ROLLUP: Select t.classid,t.studentname,Sum(t.score) Fro ...
- Oracle分组函数cube VS rollup
分析函数cube和rollup魅力首先请看下面例子1)创建表create table group_test (group_id int, job varchar2(10), name varchar2 ...
- Oracle分组函数之ROLLUP用法
rollup函数 本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as s ...
- [Oracle] Group By 语句的扩展 - Rollup、Cube和Grouping Sets
常常写SQL语句的人应该知道Group by语句的主要使用方法是进行分类汇总,以下是一种它最常见的使用方法(依据部门.职位分别统计业绩): SELECT a.dname,b.job,SUM(b.sal ...
- Oracle的聚合函数group by结合CUBE和ROLLUP的使用
转自:https://docs.oracle.com/cd/E11882_01/server.112/e25554/aggreg.htm#DWHSG8618 CUBE Syntax CUBE appe ...
- Grouping Sets:CUBE和ROLLUP从句
在上一篇文章里我讨论了SQL Server里Grouping Sets的功能.从文中的例子可以看到,通过简单定义需要的分组集是很容易进行各自分组.但如果像从所给的列集里想要有所有可能的分布——即所谓的 ...
随机推荐
- mysql之 MySQL 主从基于 GTID 复制原理概述
一. 什么是GTID ( Global transaction identifiers ):MySQL-5.6.2开始支持,MySQL-5.6.10后完善,GTID 分成两部分,一部分是服务的UUid ...
- ASP.NET MVC + ECharts图表案例
废话不多说直接讲讲今天要做的事. 利用微软爸爸的MVC框架结合百度的良心产品ECharts图表进行动态图表的生成,本文以柱状图为例. ECharts下载以及相关文档:http://echarts.ba ...
- 通过LOGBACK实现每个类、包或自定义级别
项实现LOGBACK对每个包或者类或者通过自定义级别的方式实现自定义输出的日志进入制定的文件.查阅了很多资料,都没有找到行之有效的解决方案,直到看到了这篇文章http://www.360doc.com ...
- eclipse debug URLClassPath.getLoader(int) file
版权声明:本文为博主原创文章,未经博主允许不得转载. URLClassPath.getLoader 在用Eclipse调试Java程序时,新手遇到的一个问题是断点老是执行不到,弹出URLClassPa ...
- Vue-cli 记录
出自http://www.cnblogs.com/nutritious/p/6494479.html 先给出能正确安装的步骤: 1.进盘符 2,为啥不用npm,这是国外的东西,有些电脑无法FQ,会导致 ...
- 关于HTML学习整理(一)
新人,自己整理,第一次发,以后慢慢整理,欢迎指点,那些链接怎么做的,希望有人告知一下,谢谢! HTML页面写法,标签成对出现,可嵌套使用 <html> <head> <t ...
- 通过 itms:services://? 在线安装ipa ,跨过app-store
1.需要一个html文件,引导下载用户在线安装ipa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&quo ...
- Linux网络服务10——远程访问及控制
Linux网络服务10--远程访问及控制 一.SSH概述 1.SSH简介 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数 ...
- 【CC2530入门教程-03】CC2530的中断系统及外部中断应用
第3课 CC2530的中断系统及外部中断应用 广东职业技术学院 欧浩源 一.中断相关的基础概念 内核与外设之间的主要交互方式有两种:轮询和中断. 轮询的方式貌似公平,但实际工作效率很低,且不能及 ...
- 【翻译】旧技术成就新勒索软件,Petya添加蠕虫特性
原文链接:https://blogs.technet.microsoft.com/mmpc/2017/06/27/new-ransomware-old-techniques-petya-adds-wo ...