oracle group by中cube和rollup字句的使用方法及区别
2024-08-22 03:03:39
oracle group by中rollup和cube的区别:
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。
如果是ROLLUP(A, B, C)的话,先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作;
如果是GROUP BY CUBE(A, B, C),则首先会对(A、B、C)进行GROUP BY,然后依次是(A、B),(A、C),(A),(B、C),(B),(C), 最后对全表进行GROUP BY操作。
测试数据:
/*
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。
*/
--创建表
create table fzq
(
name varchar(20),
calss varchar(2),
kemu varchar(4),
chengji varchar(3) )
测试表
--插入数据
insert into fzq values
('','','数学','');
insert into fzq values
('','','语文','');
insert into fzq values
('','','数学','');
insert into fzq values
('','','语文','');
insert into fzq values
('','','数学','');
insert into fzq values
('','','语文','');
insert into fzq values
('','','数学','');
insert into fzq values
('','','语文',''); commit;
测试数据
- select * from fzq;
- select calss,name,sum(chengji) from fzq group by calss,name;
- select calss,name,sum(chengji) from fzq group by cube(calss,name) order by calss;
- select calss,name,sum(chengji) from fzq group by rollup(calss,name) order by calss;
- select calss,name,sum(chengji) from fzq group by grouping sets(calss,name);
最新文章
- checkBox 开关按钮
- Stack Overflow is a question and answer site
- Hessian Matrix
- linux装载可执行程序简析
- CISCO3560 VLAN配置实例
- 重构19-Extract Factory Class(提取工厂类)
- <;%@include和<;jsp:include
- overload的一点思考
- 安装gensim
- 标准IO和重定向
- CentOs 7 中安装tomcat8
- js判断IE浏览器版本(IE8及以下)
- mtools-你可能没用过的mongodb神器
- 怎样在win7 IIS中部署网站
- java课堂笔记2
- Git命令的使用_操作远程仓库——详细教程3
- PCB (5) 创建自己的原件库
- poj 1789 每个字符串不同的字母数代表两个结点间的权值 (MST)
- 使用 Kafka 在生产环境构建大规模机器学习
- LightOJ 1027 - A Dangerous Maze(求期望)