在使用group by常用的基本函数包括min,max,avg,sum,count等,除了基本函数oracle中提供了一些高级分组函数,

Rollup,Cube,Grouping,Grouping set,下面做详细介绍:

rollup可以对分组列表中的首字段进行再进行分组统计,例如

SELECT dep_id, job_id , SUM(salary) FROM emp GROUP BY ROLLUP(dep_id,job_id);

不仅会按照dep_id,job_id整体进行分组,还会对dep_id进行分组,以及(),即所有record进行计算。

cube对分组列表中的所有字段组合进行rollup

SELECT dep_id, job_id , SUM(salary) FROM emp GROUP BY CUBE(dep_id,job_id);

grouping返回0或1,表示当前是否使用某字段进行了分组统计,在rollup或cube语句中

SELECT dep_id, job_id , SUM(salary),GROUPING(dep_id), GROUPING(job_id) FROM emp GROUP BY CUBE(dep_id,job_id) ORDER BY dep_id,job_id;

grouping set可以对多个分组集合进行一起分组计算,但只需一次load表的数据,其结果相当于union all 单个分组结果。

SELECT dep_id, job_id , SUM(salary) FROM emp GROUP BY GROUPING SETS(dep_id,job_id,(dep_id,job_id));

SELECT dep_id, job_id , SUM(salary) FROM emp GROUP BY GROUPING SETS((dep_id,job_id),(dep_id),());和SELECT dep_id, job_id , SUM(salary) FROM emp GROUP BY ROLLUP(dep_id,job_id);结果是等价的。

oracle的高级分组函数,group by 高级函数使用相关推荐

  1. oracle数据库怎么分组查询,oracle数据库之分组查询

    本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1  多表查询2)而在 ...

  2. oracle 分组 排名,Oracle数据库之分组查询及排序

    分组查询:使用 group by 来设置分组,把该列具有相同值的多条记录当成一组记录来处理,然后只会输出一条记录,得到的结果会默认使用升序的方式进行排列. 规则: (1)如果使用了分组函数,或者是 g ...

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

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

  4. 分组函数group by和Oracle中分析函数partition by的用法以及区别

    今天有个同事给我打电话问我题目列出的这个问题,在日常开发中,确实它们俩都是与分组有关的,但是需要注意的是一个是分组函数另一个是分析函数,讲解用到的表就以Oracle中schema的scott的EMP表 ...

  5. Oracle入门(十三B)之高级查询(上)

    下章:Oracle入门(十三C)之高级查询(下) 一.多表格查询 (1)定义 将两个或两个以上的表格,按照一定的关系连接起来进行查询. (2)多表格查询分类 连接查询 嵌套查询 集合查询 二.连接查询 ...

  6. Oracle入门(十三C)之高级查询(下)

    上章:Oracle入门(十三B)之高级查询(上) 四.常见组函数 SUM.AVG.COUNT.MIN.MAX 分组函数忽略null 值. 不能在WHERE 子句中使用组函数. MIN 和MAX 可用于 ...

  7. oracle分组聚合查询,Oracle中分组查询group by用法规则解析

    本篇文章小编给大家分享一下Oracle中分组查询group by用法规则解析,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Oracle中group by ...

  8. oracle 分组 top10 sql,oracle sql 合龙 分组 聚合函数

    oracle sql 合并 分组 聚合函数 工作中有一需求,要根据多个表的数据统计情况来更新另外一个表中的某个字段,折腾了会才写出如下sql: --最终版更新语句 update moka_user_u ...

  9. oracle12c order by,oracle 数据库中order by 的一些高级用法

    oracle数据库中order by用法 oracle数据库中order by的一些高级用法 现有一个表,表内容如下: 以下的操作都是对该表进行的操作 1.按照名称排序(默认为升序) 实现代码: se ...

最新文章

  1. 物理学家发现粒子是如何自我组装的
  2. CommunityServer研习心得(转)
  3. 【Android 应用开发】Android 杀进程总结 ( 杀后台进程 | 杀前台进程 | 杀其它进程 )
  4. 剑指 Offer 52. 两个链表的第一个公共节点(C语言)
  5. memcached全面剖析--3.memcached的删除机制和发展方向
  6. =在php中,PHPExcel在PHP7中,save(‘php://output’)出现ERR_INVALID_RESPONSE错误的解决方法...
  7. 开源ETL软件在智能化集成系统中的应用
  8. 2021中国成人教育市场及用户洞察报告
  9. opencv学习笔记06
  10. 掌握Android阅读源码的两种简单方式
  11. 运动世界校园显示服务器异常,运动世界校园为什么成绩异常 成绩异常相关
  12. Python 基于 uiautomator2 实现《全民开喵铺》自动收币,自动签到,自动浏览得喵币
  13. python案例3:货币转换---初级
  14. 通过LiveNVS(免费使用)集中化管理多个LiveNVR-数据透传摆脱局域网的公网IP限制
  15. 椭圆机会不会练出肌肉腿
  16. LayUi集成下载Excel、word、PDF、CSV扩展
  17. NeurIPS latex中文支持
  18. 智能客服系统开发(技术方案)
  19. 在线教育平台项目——整体架构
  20. 并行计算中的Fortran语言

热门文章

  1. 对于注册中心,ZooKeeper、Eureka 哪个更合适?
  2. 某程序员毕业进UC,被阿里收购!跳去优酷土豆,又被阿里收购!再跳去饿了么,还被阿里收购!难道阿里想收购的是他?...
  3. 图解|通用搜索引擎背后的技术点
  4. 蚂蚁金服的一次面试你都会吗
  5. Java 编程技巧之数据结构
  6. 50强人工智能面试问题与解答
  7. 互联网人必读的30本书
  8. 敏捷和DevOps:是敌是友?
  9. 精心分享8个特别实用,但又鲜为人知的软件
  10. 超详细教你10分钟搭建一个高端的B2B2C模式的综合性商城|含来客推V3源码下载