oracle的高级分组函数,group by 高级函数使用
在使用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 高级函数使用相关推荐
- oracle数据库怎么分组查询,oracle数据库之分组查询
本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1 多表查询2)而在 ...
- oracle 分组 排名,Oracle数据库之分组查询及排序
分组查询:使用 group by 来设置分组,把该列具有相同值的多条记录当成一组记录来处理,然后只会输出一条记录,得到的结果会默认使用升序的方式进行排列. 规则: (1)如果使用了分组函数,或者是 g ...
- [转]详解Oracle高级分组函数(ROLLUP, CUBE, GROUPING SETS)
原文地址:http://blog.csdn.net/u014558001/article/details/42387929 本文主要讲解 ROLLUP, CUBE, GROUPING SETS的主要用 ...
- 分组函数group by和Oracle中分析函数partition by的用法以及区别
今天有个同事给我打电话问我题目列出的这个问题,在日常开发中,确实它们俩都是与分组有关的,但是需要注意的是一个是分组函数另一个是分析函数,讲解用到的表就以Oracle中schema的scott的EMP表 ...
- Oracle入门(十三B)之高级查询(上)
下章:Oracle入门(十三C)之高级查询(下) 一.多表格查询 (1)定义 将两个或两个以上的表格,按照一定的关系连接起来进行查询. (2)多表格查询分类 连接查询 嵌套查询 集合查询 二.连接查询 ...
- Oracle入门(十三C)之高级查询(下)
上章:Oracle入门(十三B)之高级查询(上) 四.常见组函数 SUM.AVG.COUNT.MIN.MAX 分组函数忽略null 值. 不能在WHERE 子句中使用组函数. MIN 和MAX 可用于 ...
- oracle分组聚合查询,Oracle中分组查询group by用法规则解析
本篇文章小编给大家分享一下Oracle中分组查询group by用法规则解析,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Oracle中group by ...
- oracle 分组 top10 sql,oracle sql 合龙 分组 聚合函数
oracle sql 合并 分组 聚合函数 工作中有一需求,要根据多个表的数据统计情况来更新另外一个表中的某个字段,折腾了会才写出如下sql: --最终版更新语句 update moka_user_u ...
- oracle12c order by,oracle 数据库中order by 的一些高级用法
oracle数据库中order by用法 oracle数据库中order by的一些高级用法 现有一个表,表内容如下: 以下的操作都是对该表进行的操作 1.按照名称排序(默认为升序) 实现代码: se ...
最新文章
- 物理学家发现粒子是如何自我组装的
- CommunityServer研习心得(转)
- 【Android 应用开发】Android 杀进程总结 ( 杀后台进程 | 杀前台进程 | 杀其它进程 )
- 剑指 Offer 52. 两个链表的第一个公共节点(C语言)
- memcached全面剖析--3.memcached的删除机制和发展方向
- =在php中,PHPExcel在PHP7中,save(‘php://output’)出现ERR_INVALID_RESPONSE错误的解决方法...
- 开源ETL软件在智能化集成系统中的应用
- 2021中国成人教育市场及用户洞察报告
- opencv学习笔记06
- 掌握Android阅读源码的两种简单方式
- 运动世界校园显示服务器异常,运动世界校园为什么成绩异常 成绩异常相关
- Python 基于 uiautomator2 实现《全民开喵铺》自动收币,自动签到,自动浏览得喵币
- python案例3:货币转换---初级
- 通过LiveNVS(免费使用)集中化管理多个LiveNVR-数据透传摆脱局域网的公网IP限制
- 椭圆机会不会练出肌肉腿
- LayUi集成下载Excel、word、PDF、CSV扩展
- NeurIPS latex中文支持
- 智能客服系统开发(技术方案)
- 在线教育平台项目——整体架构
- 并行计算中的Fortran语言