先看代码:

表结构如下:

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的更多相关文章

  1. 【转】【CUBE】Oracle分组函数之CUBE魅力

    http://blog.itpub.net/519536/viewspace-610997/ Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手.  关于ROLLUP的查 ...

  2. Oracle分组函数之CUBE魅力

    Oracle的CUBE与ROLLUP功能很相似,也是在数据统计分析领域的一把好手. 关于ROLLUP的查询统计功能请参考文章<Oracle分组函数之ROLLUP魅力>(http://www ...

  3. oracle group by中cube和rollup字句的使用方法及区别

    oracle group by中rollup和cube的区别:  Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句. 如果是ROLLUP(A, B, C)的话,先 ...

  4. Oracle分组函数之CUBE

    功能介绍: 首先是进行无字段的聚合,然后依次对每个字段进行聚合 创建表: 插入测试数据: ROLLUP: Select t.classid,t.studentname,Sum(t.score) Fro ...

  5. Oracle分组函数cube VS rollup

    分析函数cube和rollup魅力首先请看下面例子1)创建表create table group_test (group_id int, job varchar2(10), name varchar2 ...

  6. Oracle分组函数之ROLLUP用法

    rollup函数 本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as s ...

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

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

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

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

  9. Grouping Sets:CUBE和ROLLUP从句

    在上一篇文章里我讨论了SQL Server里Grouping Sets的功能.从文中的例子可以看到,通过简单定义需要的分组集是很容易进行各自分组.但如果像从所给的列集里想要有所有可能的分布——即所谓的 ...

随机推荐

  1. openjdk7之编译和debug

    大家也可以看我的博客: openjdk7之编译和debug,这里格式更好. 为了更好的学习JDK.HotSpot等源码,需要能debug JDK.HotSpot等源码.本文主要讲述,怎么编译open ...

  2. 安装ecshop的问题处理

    在安装Ecshop的时候,会遇到几个问题: 1.Strict Standards: Non-static method cls_image::gd_version() should not be ca ...

  3. [翻译]怎么写一个React组件库(二)

    本文同步发布于知乎专栏 https://zhuanlan.zhihu.com/p/27434018,喜欢本文的就去知乎点个赞支持下吧- 引言 该系列文章将通过创建一个组件库来引导你学习如何构建自己的组 ...

  4. WPF MVVM 架构 Step By Step(4)(添加bindings - 完全去掉后台代码)

    之前的改进已经挺棒的,但是我们现在知道了后台代码的问题,那是否可能把后台代码全部去除呢?这时候就该WPF binding 和 commands 来做的事情了. WPF就是以超吊的binding,com ...

  5. IAM

    IAM 与 权限访问控制机制 IAM , Identity and Access Management 基本概念 ARN, Amazon Resource Name : 在 AWS 里, 创建的任何资 ...

  6. Owl Carousel幻灯片插件的使用

    Owl Carousel 是一个强大.实用但小巧的 jQuery 幻灯片插件,它具有一下特点: 兼容所有浏览器 支持响应式 支持 CSS3 过度 支持触摸事件 支持 JSON 及自定义 JSON 格式 ...

  7. javascript所有的节点和方法

    属性: 1.Attributes 存储节点的属性列表(只读) 2.childNodes 存储节点的子节点列表(只读) 3.dataType 返回此节点的数据类型 4.Definition 以DTD或X ...

  8. js的双等号类型转换

    var undefined; undefined == null; // true 1 == true; // true 2 == true; // false 0 == false; // true ...

  9. h5、jq 移动端评论点攒功能

    h5.jq 移动端评论点攒功能 平时做的项目中大部分都会涉及到评论的功能,之前用angular写的项目,功能写起来很方便,但是对于一个单页来说,angular有点大材小用了,所有今天分享一个关于jq制 ...

  10. React.js 小书介绍

    React.js 小书 Github 关于作者 这是一本关于 React.js 的小书. 因为工作中一直在使用 React.js,也一直以来想总结一下自己关于 React.js 的一些知识.经验.于是 ...