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的功能.从文中的例子可以看到,通过简单定义需要的分组集是很容易进行各自分组.但如果像从所给的列集里想要有所有可能的分布——即所谓的 ...
随机推荐
- c++ thread
Either pthread_join(3) or pthread_detach() should be called for each thread,that an application crea ...
- bootstrap-datetimepicker bootstrap-datepicker bootstrap-timepicker 时间插件
<!DOCTYPE html><head> <title>时间插件测试</title><style type="text/css&quo ...
- 实现Runnable接口和继承Thread类之间的区别
在Java语言中,我们都知道,有两种创建线程的方式,一中是使用Runnable接口,另一种是使用Thread类. public class DemoRunnable implements Runnab ...
- 前台跨站点获取session
var sessionId = System.Web.HttpContext.Current.Response.Cookies[System.Web.Security.FormsAuthenticat ...
- Javaee需不需要培训?培训完可以顺利找到工作吗?
Javaee需不需要培训?培训完可以顺利找到工作吗? 在IT行业中Java以它通用性.高效性.平台移植性和安全性遍布各个领域,它的火热也给IT市场发展带来一定影响,随着Java技术的广泛运营,企业对J ...
- 手动ecache处理
手动ecache处理: import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.E ...
- 保存Druid的监控记录
继上篇帖子之后 , 公司又要求将Druid Monitor的监控信息保存起来 , 因为Druid的监控记录在是缓存的,重启之后无法找回,所以需要做持久化,定期把监控记录转存到日志文件中 研究了半天 , ...
- Linux下php安装memcache
Linux下php安装memcache说明:php安装目录:/phpstudy/server/php/bin/phpphp.ini配置文件路径:/phpstudy/server/php/etc/php ...
- Generic(泛型)
什么是泛型:"通过参数化类型来实现在同一份代码上操作多种数据类型.利用"参数化类型"将类型抽象化,从而实现灵活的复用". 简单来说泛型就是为了使一些代码能够重复 ...
- 使用Scribefire在博客中插入语法高亮 II
效果如下, 这是我们在Scribefire中添加的code按钮,单击此按钮,则会出现 在codeHere中直接输入代码就可以了. 查看html 可以看到,其中已经添加了<pre>标签. 下 ...