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. FreeMarker 语法 访问 pojo 的属性

    一.java 代码 @Test public void testFreeMarker() throws Exception { //1.创建一个模板文件 //2.创建一个Configuration对象 ...

  2. <constant name="struts.devMode" value="true" />

    <constant name="struts.devMode" value="true" /> 当vlaue为true,表示struts处于开发模式 ...

  3. Linux下 利用find命令删除所有.svn目录

    ====================实例============== 删除所有.svn目录 这也是我当初查找 Linux find 命令的目的. 1)  find . -type d -name ...

  4. 数据库连接池dataesoruce pool深入理解

    8.数据库连接池的connection都是长连接的,以方便多次调用,多人连续使用.dataSourcePool9.数据库连接池中的连接,是在你用完之后,返回给数据库连接池的,并不是close()掉,而 ...

  5. HorizontalDragLayout-模仿QQclient的Item滑动删除

    首先感谢http://blog.csdn.net/lmj623565791/article/details/46858663hongyang的文章.之前看过ViewDragHelper类也读过一些de ...

  6. asp.net学习指南

    个人总结了一些不错的基础视频教程 视频链接地址(猛戳这里)

  7. insmod: error inserting &#39;hello.ko&#39;: -1 Invalid module format

    在学习编写linux驱动程序的时候,一般都是从写一个helloworld的模块開始. 可是在编译完毕后,进行模块载入的时候,有时会出现例如以下错误: insmod: error inserting ' ...

  8. ZOJ 2913 Bus Pass (近期的最远BFS HDU2377)

    题意  在全部城市中找一个中心满足这个中心到全部公交网站距离的最大值最小 输出最小距离和满足最小距离编号最小的中心 最基础的BFS  对每一个公交网站BFS  dis[i]表示编号为i的点到全部公交网 ...

  9. 2015.05.12,外语,读书笔记-《Word Power Made Easy》 15 “如何谈论不同人的特点” SESSION 45

    TEASER PREVIEW 以-ous结尾的,描绘某人特点的词语包括: fawning(['fɔ:niŋ] adj.奉承的),servilely(['sә:vail] adj. 卑屈的, 奴隶的) ...

  10. BZOJ 1790: [Ahoi2008]Rectangle 矩形藏宝地

    BZOJ 1790: [Ahoi2008]Rectangle 矩形藏宝地 题目传送门 [题目大意] 游戏的主办方把这块开阔地当作第一象限,将所有可能埋藏宝藏的地方划成一个个矩形的土地,并把这些矩形土地 ...