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);

 

oracle group by中cube和rollup字句的使用方法及区别的更多相关文章

  1. Oracle 18c 数据库中scott用户不存在的解决方法

    Oracle 18c 数据库中scott用户不存在的解决方法 注:该文为转载 上面标题可直接跳转 原文地址:http://www.cnblogs.com/zangdalei/p/5482732.htm ...

  2. Oracle的聚合函数group by结合CUBE和ROLLUP的使用

    转自:https://docs.oracle.com/cd/E11882_01/server.112/e25554/aggreg.htm#DWHSG8618 CUBE Syntax CUBE appe ...

  3. [Oracle] Group By 语句的扩展 - Rollup、Cube和Grouping Sets

    常常写SQL语句的人应该知道Group by语句的主要使用方法是进行分类汇总,以下是一种它最常见的使用方法(依据部门.职位分别统计业绩): SELECT a.dname,b.job,SUM(b.sal ...

  4. linux系统中如何进入退出vim编辑器,方法及区别

    在linux家族中,vim编辑器是系统自带的文本编辑器,其功能强大自不必说了.偶有小白,刚接触linux,要修改某个文本文件,不可能像WINDOWS那样操作,更有甚者,进入VI编辑器后,无法退出以致强 ...

  5. [转] linux系统中如何进入退出vim编辑器,方法及区别

    原文链接:http://www.cnblogs.com/crazylqy/p/5649860.html 在linux家族中,vim编辑器是系统自带的文本编辑器,其功能强大自不必说了. 偶有小白,刚接触 ...

  6. 【转】linux系统中如何进入退出vim编辑器,方法及区别

    在linux家族中,vim编辑器是系统自带的文本编辑器,其功能强大自不必说了. 偶有小白,刚接触linux,要修改某个文本文件,不可能像WINDOWS那样操作,更有甚者,进入VI编辑器后,无法退出以致 ...

  7. linux系统中如何进入退出vim编辑器的方法及区别

    在linux家族中,vim编辑器是系统自带的文本编辑器,其功能强大自不必说了. 偶有小白,刚接触linux,要修改某个文本文件,不可能像WINDOWS那样操作,更有甚者,进入VI编辑器后,无法退出以致 ...

  8. oracle分组-神奇的cube和rollup

    先看代码: 表结构如下: emp表 EMPNO                                     NOT NULL NUMBER(4) ENAME                 ...

  9. schema文件中cube的事实表使用视图方法

    在cube中可以使用查询结果或者视图来当做事实表,其中view的alias相当于表名,这个要和同一个cube中的level的表名对应,代码如下: <Cube name="YHZXZLF ...

随机推荐

  1. Rest中获取制定操作的UriTemplate

    UriTemplate uri = WebOperationContext.Current.GetUriTemplate("DownloadFile");

  2. tinyhttpd-0.1.0_hacking

    /**************************************************************************** * * tinyhttpd-0.1.0_ha ...

  3. 【转】eclipse 安装插件

    eclipse安装插件或许没有什么多的可讲,但对于刚刚接触eclipse这款IDE的新手来说,可能还是会有点棘手! eclipse安装插件大致三种方法: 方法一:自身安装器 使用eclipse的Sof ...

  4. [转载] TCP与UDP对比

    TCP和UDP区别     TCP UDP 是否连接 面向连接 面向非连接 传输可靠性 可靠的 不可靠的 应用场合 传输大量的数据 少量数据 速度 慢 快     OSI 和 TCP/IP 模型在传输 ...

  5. 快速对字符转义,避免跨站攻击XSS

    XSS已经成为非常流行的网站攻击方式,为了安全起见,尽量避免用户的输入.可是有些情况下不仅不避免,反而要求鼓励输入,比如写博客.博客园开放性很高,可以运行手写的JS.之前比较著名的例子就是,凡是看到某 ...

  6. C++ Primer : 第十二章 : 动态内存之shared_ptr类

    在C++中,动态内存是的管理是通过一对运算符来完成的:new  ,在动态内存中为对象分配空间并返回一个指向该对象的指针,delete接受一个动态对象的指针,销毁该对象,并释放该对象关联的内存. 动态内 ...

  7. 自动将String类型的XML解析成实体类

    package com.mooc.freemarker2dto; public class BaseDto { } package com.mooc.freemarker2dto; public cl ...

  8. JavaScript 遗漏知识再整理;错误处理,类型转换以及获取当前时间、年份、月份、日期;

    1.JavaScript 错误处理 Throw.Try 和 Catch try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. JavaScript 错误 当 J ...

  9. 铺地毯 2011年NOIP全国联赛提高组

    题目描述 Description 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有n 张地毯,编号从1 到n.现在将这些地毯按照编号从 ...

  10. 课堂所讲整理:包装&工具类

    package org.hanqi.array; import java.util.Random; public class BaoZhuang { public static void main(S ...