rollup(),cube(),grouping sets()
  上面这几个函数,是对group by分组功能做的功能扩展。
a.rollup()
  功能:在原结果基础上追加一行总合计记录
  rollup(字段1,字段2)会追加按字段1进行的合计记录,
  最后再追加一个总合计记录
 
  select deptno,count(*)
  from emp
  group by rollup(deptno);
 
  select deptno,job,count(*)
  from emp
  group by rollup(deptno,job)
  order by deptno;
  ----等价于下面写法-----
  select deptno,job,count(*)
  from emp
  group by deptno,job
  union
  select deptno,null,count(*)
  from emp
  group by deptno
  union
  select null,null,count(*)
  from emp
  order by deptno;
 
  结论:group by rollup(字段1,字段2,字段3)
    --查询按字段1,字段2,字段3分组统计结果
    --追加按字段1和字段2的合计
    --追加按字段1的合计
    --追加总合计记录
b.cube()
 
  select deptno,count(*)
  from emp
  group by cube(deptno)
  order by deptno;
 
  cube(字段1):作用于rollup(字段1)相同。
   追加一行总合计记录。
 
  select deptno,job,count(*)
  from emp
  group by cube(deptno,job)
  order by deptno;
  --查询group by deptno,job分组统计结果
  --查询group by deptno分组统计结果
  --查询group by job分组统计结果
  --查询没有group by统计结果
 
 结论:group by cube(字段1,字段2,字段3)
  --查询group by 字段1,字段2,字段3统计结果
  --查询group by 字段1,字段2统计结果
  --查询group by 字段1统计结果
  --查询group by 字段2统计结果
  --查询group by 字段3统计结果
  --查询group by 字段2,字段3统计结果
  --查询group by 字段1,字段3统计结果
  --查询没有group by统计结果
 
c.grouping sets()
 
  select deptno,count(*)
  from emp
  group by grouping sets(deptno)
  order by deptno;
  --上面和没加grouping sets()效果一样
 
  select deptno,job,count(*)
  from emp
  group by grouping sets(deptno,job)
  order by deptno;
 --只返回cube规则追加的分组统计结果
 --不包含没有group by和group by deptno,job的统计
  

高级聚合函数rollup(),cube(),grouping sets()的更多相关文章

  1. [转]详解Oracle高级分组函数(ROLLUP, CUBE, GROUPING SETS)

    原文地址:http://blog.csdn.net/u014558001/article/details/42387929 本文主要讲解 ROLLUP, CUBE, GROUPING SETS的主要用 ...

  2. [Hive_11] Hive 的高级聚合函数

    0. 说明 Hive 的高级聚合函数 union all | grouping sets | cube | rollup pv //page view 页面访问量 uv //user view 访问人 ...

  3. Oracle分析函数 — sum, rollup, cube, grouping用法

    本文通过例子展示sum, rollup, cube, grouping的用法. //首先建score表 create table score( class  nvarchar2(20), course ...

  4. GROUP BY中ROLLUP/CUBE/GROUPING/GROUPING SETS使用示例

    oracle group by中rollup和cube的区别: Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句.CUBE ROLLUP 是用于统计数据的. 实验 ...

  5. hive grouping sets 等聚合函数

    函数说明: grouping sets 在一个 group by 查询中,根据不同的维度组合进行聚合,等价于将不同维度的 group by 结果集进行 union allcube 根据 group b ...

  6. hive group by聚合函数增强

    1.grouping sets grouping sets子句都可以根据UNION连接的多个GROUP BY查询进行逻辑表示 SELECT a,b,SUM(c)FROM tab1 GROUP BY a ...

  7. 在MongoDB中实现聚合函数 (转)

    随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加.这使得很多组织都在寻找一种经济的 ...

  8. 在MongoDB中实现聚合函数

    在MongoDB中实现聚合函数 随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加. ...

  9. 10-31SQLserver基础--聚合函数、分组

    在查询语句时,也存在一些方法和属性,而这些方法在查询时统称为函数,便利查询时使用 聚合函数(都是针对字段操作) 聚合是缩减一系列输入值的表达式,例如缩减为单个值. Select*from biao 1 ...

随机推荐

  1. Struts2校验

    struts2校验有两种实现方法: 手工编写代码实现(基本验证) //login.jsp <font color="red"><s:fielderror/> ...

  2. nodejs-配置vs code的插件

    在windows上安装好npm后,再在终端里使用npm安装express,再安装express-generator  进入express的目录, 在终端中执行 npm install 启动expres ...

  3. POJ 2407

    裸 的求欧拉函数 #include <iostream> #include <cstdio> #include <cstring> #include <alg ...

  4. [Node.js] Manage Configuration Values with Environment Variables

    Storing configuration in files instead of the environment has many downsides, including mistakenly c ...

  5. 16进制颜色字符串转为UIColor

    //16进制颜色(html颜色值)字符串转为UIColor +(UIColor *) hexStringToColor: (NSString *) stringToConvert {      NSS ...

  6. 易语言VS杀毒软件:基情复燃,转受为攻!

    这两天在编程领域里,又发生了一件令人瞩目的事情:以易语言创始人吴涛的一篇檄文<tid=370327">让我们一起来对360误报说不!>为序幕.再次拉开了易语言跟360杀毒软 ...

  7. IPK僵尸网络 看看其传播手法

    转自:http://www.freebuf.com/vuls/154975.html 一.IPK僵尸网络概述 IPK僵尸家族是自2012年底就开始出现并长期持续活跃在境外的DDoS僵尸网络.2016年 ...

  8. Java-MyBatis-杂项:MyBatis根据数组、集合查询

    ylbtech-Java-MyBatis-杂项:MyBatis根据数组.集合查询 1.返回顶部 1. foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的 ...

  9. c++面向对象程序设计 谭浩强 第二章答案

    类体内定义成员函数 #include <iostream> using namespace std; class Time { public: void set_time(); void ...

  10. ITWorld:2014年全球最杰出的14位编程天才

    近日,ITWorld 整理全球最杰出的 14 位程序员,一起来看下让我们膜拜的这些大神都有哪些?(排名不分先后) 1.Jon Skeet 个人名望:程序技术问答网站 Stack Overflow 总排 ...