oracle分组函数rollup,cube
来源:互联网 发布:hsk网络考试 编辑:程序博客网 时间:2024/04/28 00:25
rollup(字段1,字段2):
cube(字段1,字段2):
rollup(col1, col2,...) 和 cube(col1, col2,...) 用法区别在 cube 在 rollup 汇总的记录集上,还会增加对 col2 等字段的汇总;
ROLLUP只对第一个参数(字段)进行汇总,CUBE可以对参数(字段)依次汇总,所以ROLLUP中参数个数只有一个会起作用(且排名在前的参数)。
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。
ROLLUP(A, B, C):
首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。
CUBE(A, B, C),则首先会对(A、B、C)进行GROUP BY,然后依次是(A、B),(A、C),(A),(B、C),(B),(C),最后对全表进行GROUP BY操作。
CUBE 和 ROLLUP 之间的区别在于:
CUBE 生成的结果集显示了所选列中值的所有组合的聚合。
ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。
例子:
create table student( cgrade varchar2(64), cclass varchar2(64), cgroup varchar2(64), stu int)
insert into student(cgrade,cclass,cgroup,stu) values('1','1','1',10);insert into student(cgrade,cclass,cgroup,stu) values('1','2','1',10);insert into student(cgrade,cclass,cgroup,stu) values('1','2','2',20);insert into student(cgrade,cclass,cgroup,stu) values('2','1','1',30);insert into student(cgrade,cclass,cgroup,stu) values('2','2','2',40);
select * from student;
select cgrade,cclass,sum(stu) from student group by cgrade,cclass;
select cgrade,cclass,sum(stu) from student group by cube(cgrade,cclass);
select decode(grouping(cgrade),1,'学校人数',0,cgrade),decode(grouping(cclass)+grouping(cgrade),1,'年级人数',0,cclass),sum(stu) from student group by rollup(cgrade,cclass);
- oracle分组函数rollup,cube
- Oracle 分组函数cube 与rollup
- oracle分组 rollup,Cube
- oracle rollup,cube函数
- Jarno详解Oracle高级分组函数(ROLLUP, CUBE, GROUPING SETS)
- Oracle分组函数 rollup、cube、grouping sets、grouping、grouping_id
- Oracle关于rollup与cube分组函数使用
- 分析函数学习-->>分组函数rollup cube
- 【实验】【CUBE】oracle分组函数之CUBE演示及与ROLLUP的比较
- 【CUBE】oracle分组函数之CUBE演示及与ROLLUP的比较
- ROLLUP和CUBE语句。 ORACLE分组统计
- ROLLUP和CUBE语句。 ORACLE分组统计
- oracle 高级分组 ROLLUP 和 CUBE 区别
- Oracle中的分组group by rollup/cube
- ORACLE ROLLUP和CUBE函数
- 【ROLLUP】Oracle分组函数之ROLLUP魅力
- 【ROLLUP】Oracle分组函数之ROLLUP魅力
- 【ROLLUP】Oracle分组函数之ROLLUP魅力
- 开源 免费 java CMS - FreeCMS1.2-标签 link
- T-SQL级联删除——ON DELETE CASCADE
- ArcEngine 异常来自 HRESULT:0x80040356
- Linq 并发
- ubuntu下ndk编译ffmpeg0.8.1
- oracle分组函数rollup,cube
- chkconfig做了什么
- struts2怎么获得ip地址呢?
- Maven 环境快速搭建二(eclipse+maven2+jetty)
- 静态链表C语言实现详解
- ORA-19511 ANS1017E (RC-50) Session rejected: TCP/IP connection failure
- Yii 快速入门
- 关于oracle中将一张表中的多条数据的某列查询出来合并为一条数据显示
- git命令