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. top 命令SQLServer-sybase-oracle

    SQLServer: select top 10 * from tablename; select top 10 percent from tablename; select * from table ...

  2. Oracle11g环境设置-windows环境

    新建环境变量(系统变量),变量名:ORACLE_HOME 变量值:E:\app\Administrator\product\11.2.0\dbhome_1 新建环境变量(系统变量),变量名:ORACL ...

  3. ibatis之##与$$的 使用

    /** 主要讲一下ibatis中$$的使用: 是为了传递参数; 参数一定在Action层用''包裹起来: */ List <SysRole> userList= systemService ...

  4. AndroidAnnotations框架配置

    如今Android Studio的普及,Android开发基本要舍弃Eclipse了,最近使用AndroidAnnotations 注解框架的时候,找了些资料慢慢整出来了,在这给大家简单分享一下: 首 ...

  5. idea导入项目出错

    在idea导如项目后,总是会报错,每个类都会报错.解决的办法是: 1. 2.添加本地jdk 3.添加项目中的lib包

  6. ps 换图片的背景颜色

    先把图像格式换乘RGB然后调整颜色,不用谢我是活雷锋!www.idouly.com

  7. PHP MAIL DEMO(程序代码直接发送邮件)

    php代码 <?php // 收件人邮箱地址 $to = 'xxxxxx@qq.com'; // 邮件主题 $title = '测试邮件发送'; // 邮件内容 $msg = '这是一封测试邮件 ...

  8. xampp集成安装的mysql修改密码(Window)

    把mysql安装目录bin文件夹加入环境变量 path:mysqlPath\bin; 或者进入mysql安装目录bin文件夹下,按住shift键盘鼠标右击进入命令行 键入命令 mysqladmin - ...

  9. 线段树练习 codevs 1080

    /* codevs 1080 线段树练习 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 一行N个方格,开 ...

  10. oracle RAC调整数据文件大小并移动表到指定的表空间

    一.Oracle RAC 调整表空间数据文件大小 1.先查找出表空间对应的数据文件路径: select file_name,tablespace_name from dba_data_files ; ...