Oracle grouping和rollup简单测试

  1. SQL> select department_id,sum(salary) from employees where department_id in(10,30,90,100) group by department_id order by department_id;
  2. DEPARTMENT_ID SUM(SALARY)
  3. ------------- -----------
  4. 10 4400
  5. 30 24900
  6. 90 58000
  7. 100 51608
  8.  
  9. SQL> select department_id,first_name,sum(salary) from employees where department_id in(10,30,90,100) group by (department_id,first_name) order by department_id;
  10. DEPARTMENT_ID FIRST_NAME SUM(SALARY)
  11. ------------- -------------------- -----------
  12. 10 Jennifer 4400
  13. 30 Alexander 3100
  14. 30 Den 11000
  15. 30 Guy 2600
  16. 30 Karen 2500
  17. 30 Shelli 2900
  18. 30 Sigal 2800
  19. 90 Lex 17000
  20. 90 Neena 17000
  21. 90 Steven 24000
  22. 100 Daniel 9000
  23. 100 Ismael 7700
  24. 100 John 8200
  25. 100 Jose Manuel 7800
  26. 100 Luis 6900
  27. 100 Nancy 12008
  28. 16 rows selected
  29.  
  30. SQL> select department_id,first_name,sum(salary) from employees where department_id in(10,30,90,100) group by rollup(department_id,first_name) order by department_id;
  31. DEPARTMENT_ID FIRST_NAME SUM(SALARY)
  32. ------------- -------------------- -----------
  33. 10 Jennifer 4400
  34. 10 4400
  35. 30 Alexander 3100
  36. 30 Den 11000
  37. 30 Guy 2600
  38. 30 Karen 2500
  39. 30 Shelli 2900
  40. 30 Sigal 2800
  41. 30 24900
  42. 90 Lex 17000
  43. 90 Neena 17000
  44. 90 Steven 24000
  45. 90 58000
  46. 100 Daniel 9000
  47. 100 Ismael 7700
  48. 100 John 8200
  49. 100 Jose Manuel 7800
  50. 100 Luis 6900
  51. 100 Nancy 12008
  52. 100 51608
  53. DEPARTMENT_ID FIRST_NAME SUM(SALARY)
  54. ------------- -------------------- -----------
  55. 138908
  56. 21 rows selected
  57.  
  58. SQL> select department_id,grouping(department_id),first_name,grouping(first_name),sum(salary) from employees where department_id in(10,30,90,100) group by rollup(department_id,first_name) order by department_id;
  59. DEPARTMENT_ID GROUPING(DEPARTMENT_ID) FIRST_NAME GROUPING(FIRST_NAME) SUM(SALARY)
  60. ------------- ----------------------- -------------------- -------------------- -----------
  61. 10 0 Jennifer 0 4400
  62. 10 0 1 4400
  63. 30 0 Alexander 0 3100
  64. 30 0 Den 0 11000
  65. 30 0 Guy 0 2600
  66. 30 0 Karen 0 2500
  67. 30 0 Shelli 0 2900
  68. 30 0 Sigal 0 2800
  69. 30 0 1 24900
  70. 90 0 Lex 0 17000
  71. 90 0 Neena 0 17000
  72. 90 0 Steven 0 24000
  73. 90 0 1 58000
  74. 100 0 Daniel 0 9000
  75. 100 0 Ismael 0 7700
  76. 100 0 John 0 8200
  77. 100 0 Jose Manuel 0 7800
  78. 100 0 Luis 0 6900
  79. 100 0 Nancy 0 12008
  80. 100 0 1 51608
  81. DEPARTMENT_ID GROUPING(DEPARTMENT_ID) FIRST_NAME GROUPING(FIRST_NAME) SUM(SALARY)
  82. ------------- ----------------------- -------------------- -------------------- -----------
  83. 1 1 138908
  84. 21 rows selected

rollup为按分组统计小计和。
grouping(department_id)和grouping(first_name)
如果当前列所在的行为空,则显示为1,不为空则显示为0;

Oracle:grouping和rollup的更多相关文章

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

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

  2. SQL GROUP BY GROUPING SETS,ROLLUP,CUBE(需求举例)

    实现按照不同级别分组统计 关于GROUP BY 中的GROUPING SETS,ROLLUP,CUBE 从需求的角度理解会更加容易些. 需求举例: 假如一所学校只有两个系, 每个系有两个专业, 每个专 ...

  3. oracle group by rollup,decode,grouping,nvl,nvl2,nullif,grouping_id,group_id,grouping sets,RATIO_TO

    干oracle 047文章12当问题,经验group by 声明.因此邂逅group by  rollup,decode,grouping,nvl,nvl2,nullif,RATIO_TO_REPOR ...

  4. Oracle Group by+rollup+cube 的应用

    首先我们创建一个示例表: Create table test_group (v_name varchar2(4) ,v_size varchar2(4) ,v_color varchar2(4) ,n ...

  5. 【Teradata】grouping和rollup窗口函数

    1.group by后带rollup子句 先按一定的规则产生多种分组,然后返回各个分组所产生的结果集的并集,且没有去掉重复数据(统计出的数据是求和还是最大值还是平均值等这就取决于SELECT后的聚合函 ...

  6. Hive高级聚合GROUPING SETS,ROLLUP以及CUBE

    scala> import org.apache.spark.sql.hive.HiveContextimport org.apache.spark.sql.hive.HiveContext s ...

  7. (2.4)DDL增强功能-数据汇总grouping、rollup、cube

    参考:https://www.cnblogs.com/nikyxxx/archive/2012/11/27/2791001.html 1.rollup (1)rollup在group by 子句中使用 ...

  8. MS SQL 分类汇总参数 grouping(**)=1 rollup cubt

    转:http://www.111cn.net/database/mssqlserver/43368.htm 本文章介绍了关于sql多级分类汇总实现方法及数据结构,有碰到问题的同学可参考一下. 据库结构 ...

  9. oracle GROUP BY rollup

    1.ROW_NUMBER() OVER函数的基本用法用法 http://www.cnblogs.com/fxgachiever/archive/2010/09/15/1826792.html 2.De ...

随机推荐

  1. 安装centos6.3

    废话少说,今天安装镜像文件.版本为centos6.3 1.首先,我们已经创建了一个空的虚拟机,此时,打开虚拟机,选择的镜像文件,点击ok自己下载 2.点击绿色的三角箭头,你会看到下面页面.(如果报错T ...

  2. CSS结构伪类E:first-child/last-child/only-child/empty

    E:first-child解释:E的父元素的第一个子元素正好是E,给这个E定义样式 E:last-child解释:E的父元素的最后一个子元素正好是E,给这个E定义样式 E:only-child解释:E ...

  3. eclipse 404以及tomcat failed to start错误

    eclipse中的servlet项目有时会不编译,不编译可能就会出现404错误,因为在build path的输出目录并没有class文件,然而如果在输出目录引入之前编译的class文件,就可能出现cl ...

  4. CODEVS 3139 栈练习3

    3139 栈练习3  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 比起第一题,本题加了另外一个操作,访问栈顶元素(编号3,保 ...

  5. asp.net FileUpload 控件上传文件 以二进制的形式存入数据库并将图片显示出来

    图片上传事件代码如下所示: byte[] binary = upload.FileBytes; StringBuilder sqlStrSb = new StringBuilder(); sqlStr ...

  6. Ajax中send方法参数的使用

    一般情况下,使用Ajax提交的参数多是些简单的字符串,可以直接使用GET方法将要提交的参数写到open方法的url参数中,此时send方法的参数为null. 例如 : var url = " ...

  7. Front end workflow

    标签:请叫我红领巾 记一哈记一哈 ^_^ 推荐个不错的群 自己刚开始折腾的时候也是无处下手,渺茫啊.然而我是有一个很好的前端群(真的很棒,欢迎加入:[375042952]),关注群里的每一次讨论,每一 ...

  8. 更快的方式实现PHP数组去重(转)

    概述 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组.这个函数大多数情况下都能工作得很好.但是,如果你尝试在一个大的数组里使用array_u ...

  9. linux 文件查找和压缩工具

    文件查找 1,which命行查找可执行文件,which 只会搜索系统$PATH目录 2,whereis,查找可执行文件,并显示出此文件的man page文件,并且可以查找到系统的库目录 3,locat ...

  10. 利用程序将.jrxml导出为.jasper文件并用PDF显示(2)

    直接在Web项目中使用.jasper文件,其实在软件项目开发时,.jrxml文件经常修改,而且.jrxml还要在项目中进行保留备份,所以较为流行的做法是在项目中使用.jrxml来生成.jasper文件 ...