oracle 分析函数之分组求和、连续求和

最近在《sql cookbook》书上发现了名叫 分析函数 的东西,之前学 oracle 时没有印象,现在感觉其分析函数的功能相当强大、神奇,

就特意去找到了 chm 文档研究了一下,想要的朋友在本文末尾自行下载。

本文的例子都来源于 chm 文档,本人只是执行了这些 sql,看着结果理解分析函数的功能用途,并对分析函数做了注释,方便后面查看理解。

请各位读者结合 chm 中的例子一起食用,更好理解消化。

1、分组求和:GROUP BY子句

具体 sql 实例我就不贴了,具体请查看chm  分析函数 6.00

分别执行以下 sql ,对比它们执行后的结果:

--原:这是我们大家都知道的 group by() 函数
select id,area,stu_type,sum(score) score 
from students
group by id,area,stu_type
order by id,area,stu_type;--A、GROUPING SETS
select id,area,stu_type,sum(score) score 
from students
group by grouping sets((id,area,stu_type),(id,area),id)
order by id,area,stu_type;--B、ROLLUP
select id,area,stu_type,sum(score) score 
from students
group by rollup(id,area,stu_type)
order by id,area,stu_type;--C、CUBE
select id,area,stu_type,sum(score) score 
from students
group by cube(id,area,stu_type)
order by id,area,stu_type;

下面是这四条语句分别执行后的结果


注:1)每个函数都是在原来的基础上增加了功能,对不同分组条件的求和;

         2)对函数的理解自行看结果对比理解,鄙人暂时没想到合适的语言解释。


2、连续求和:sum(...)  over(...)

具体实例看 chm 文档 6.01

使用 sum(sal) over (order by ename)... 查询员工的薪水“连续”求和,注意over (order by ename);

如果没有order by 子句,求和就不是“连续”的,放在一起,体会一下不同之处:

select deptno,ename,sal,sum(sal) over (order by ename) 连续求和,sum(sal) over () 总和,   -- 此处sum(sal) over () 等同于sum(sal)100*round(sal/sum(sal) over (),4) "份额(%)"from emp

以下是执行结果,由于内置的表数据可能不一样,每个人的结果不一定一样,但效果是一样的


从结果可以看出,这里的连续求和的意思是把当前行的数据与之前所有数据相加求和作为该行的和

------------------------------------------------------------------------------------------------------------------------------------------------

使用子分区查出各部门薪水连续的总和。注意按部门分区。注意over(...)条件的不同,

sum(sal) over (partition by deptno order by ename) 按部门“连续”求总和
sum(sal) over (partition by deptno) 按部门求总和
sum(sal) over (order by deptno,ename) 不按部门“连续”求总和
sum(sal) over () 不按部门,求所有员工总和,效果等同于sum(sal)

还是贴一下执行结果更方便理解吧


partition 是划分、分割、区分的意思,partition by 类似于 group by

这里的功能就是按部门分区,在每个部门内部做连续求和

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

注意:在"... from emp;"后面不要加order by 子句,使用的分析函数的(partition by deptno order by sal)里已经有排序的语句了,

如果再在句尾添加排序子句,一致倒罢了,不一致,结果就令人费劲了。



附:该安装包包含以下文档

 点击下载http://download.csdn.net/download/alias_fa/10162035



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1380321.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

简单卡通水

参考 https://roystan.net/articles/toon-water/ 源码 https://github.com/IronWarrior/ToonWaterShader 两张噪声图 挂在相机上,开启深度模式,使shader可以拿到深度图 using UnityEngine;public class ChangeCameraDepth : MonoBehaviour {public De…

编写简单的动画

UIImageView提供了实现简单动画的功能。比如要实现这样的功能: 跳动的火焰。基本思路是,一个数组,包含火焰跳动所需的多张图片。然后设置播放时间,并开始播放。UIImageView已经提供了这方面的机制,只需把图片数组交给它…

干货!学会这些动漫绘画素材,小白也能学会动漫绘画,简单易学!

百头练习 只画头部,着重对五官进行精细刻画。 女性头像练习 1 定出五官的位置,注意不管是什么角度,人的眼睛、嘴巴都是和鼻子呈90的。 2 画出五官。 3 注意线条有实有虚,把五官细化描绘出来,然后大致勾勒出头发的走向。 4 画出头发丝和眼珠。 5 添加光影,使头发…

制作简单的动画

1、使用jQuery&#xff08;annimate&#xff09;制作 a、首先要做简单的页面布局&#xff08;两个div加上10幅图&#xff09; <div id"img2"><input type "button" value"上一页" id"a" ></input><input type…

使用埋点方式对应用监控

在指标监控的世界里&#xff0c;应用和业务层面的监控有两种典型手段&#xff0c;一种是在应用程序里埋点&#xff0c;另一种是分析日志&#xff0c;从日志中提取指标。埋点的方式性能更好&#xff0c;也更灵活&#xff0c;只是对应用程序有一定侵入性&#xff0c;而分析日志的…

PHP傻瓜也能搭建自己框架

PHP最简单自定义自己的框架&#xff08;一&#xff09; PHP最简单自定义自己的框架创建目录结构&#xff08;二&#xff09; PHP最简单自定义自己的框架定义常量自动生成目录&#xff08;三&#xff09; PHP最简单自定义自己的框架控制器自动加载运行&#xff08;四&#xf…

日期计算器输入天数计算日期_计算日期范围内的活动

日期计算器输入天数计算日期 Todays challenge is to count how many guests stayed at a hotel, in a specific date range, based on the guest arrival and departure dates. 今天的挑战是&#xff0c;根据客人的到达和离开日期&#xff0c;计算在特定日期范围内在酒店住宿…

【nacos】Param ‘serviceName‘ is illegal, serviceName is blank

报错信息 解决方式 一&#xff1a;缺少依赖 SpringBoot2.4之后不会默认加载bootstrap.yaml&#xff1b;需要手动在pom中加入如下依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-boot…

PHP利用PCRE回溯次数限制绕过某些安全限制实战案例

目录 一、正则表达式概述 有限状态自动机 匹配输入的过程分别是&#xff1a; DFA&#xff08;确定性有限状态自动机&#xff09; NFA&#xff08;非确定性有限状态自动机&#xff09; 二、回溯的过程 三、 PHP 的 pcre.backtrack_limit 限制利用 例题一 回溯绕过步骤 &…

快手在线查询权重网站源码+接口

简介&#xff1a; 快手在线查询权重源码次快手权重查询优化了算法&#xff0c;修复很多之前抖音遇到的算法上的bug&#xff0c;不再有随机数&#xff0c;每一项都是根据实际情况固定输出&#xff08;包括评分&#xff0c;发作品时间等等&#xff09; 新增用户访问ip&#xff0…

抖音皮皮虾快手无水印解析软件

介绍&#xff1a; 有一张图是获取快手cookies的方法&#xff0c;就从&#xff1a;https://live.kuaishou.com/ 登录后取出&#xff0c;随便点个链接都有啦。 网盘下载地址&#xff1a; https://zijiewangpan.com/qfNsBxGVNEs 图片&#xff1a;

集合数据类型

非数字型 列表[]&#xff08;其他语言叫数组&#xff09; 注意点&#xff1a;第一个成员的索引编号为0&#xff0c;不能访问不存在的索引编号 # list是列表变量名&#xff0c;列表中有三个成员 list[刘备,曹操,关羽] print(list[0]) print(list[1]) print(list[2]) print(li…

粘福卡多次扫,绝对真实!!!

转载于:https://www.cnblogs.com/angusbao/p/10336782.html

集五福编程c语言,支付宝如何快速集齐5张福卡 支付宝2020集五福攻略技巧

1月13日&#xff0c;支付宝2020集五福活动正式开始&#xff0c;活动一直持续到1月24日&#xff0c;也就是除夕夜。今年支付宝集五福活动延续了往年的玩法&#xff0c;包括AR扫福字、蚂蚁森林浇水得福字等。在此基础上&#xff0c;今年支付宝带来了全新的全家福卡。所有集福卡的…

支付宝福卡破解——居中的ViewPager

支付宝福卡功能刚出来&#xff0c;我就对支付宝福卡的UI实现很感兴趣。第一是因为福卡的UI比较新颖而且不久前做的项目跟福卡UI有些类似&#xff0c;第二也是很想知道支付宝这样的大厂会不会更优雅地实现福卡的UI。 1、使用hierarchyviewer查看发现福卡的容器是com.alipay.and…

支付宝福卡破解——咻一咻的ui怎么实现

通过春节的无节操营销&#xff0c;支付宝的咻一咻功能让许多人手酸过、心酸过&#xff08;没能中敬业福&#xff09;&#xff0c;在吐槽之余好奇的程序员总会猜想这ui怎么实现的呢&#xff1f; 在不看smali代码的情况下应该都会猜想咻一咻的ui实现是这样的&#xff1a;点击一下…

JAVA实现微博财神卡自动换卡,秒福卡

不废话先看图 QQ20180209-071517.png Untitled2.gif 接下来是步骤 1.提取你新浪微博的cookie,简单吧&#xff01;2.安装JAVA环境 简单吧&#xff0c;自己百度吧&#xff01;3.修改代码重点&#xff0c;敲黑板 一共有两个文件 Posttijiao的49行和HttpLogin的54行,都改成你的co…

TCP协议的报头格式和滑动窗口

文章目录 TCP报头格式端口号序号和确认序号确认应答&#xff08;ACK&#xff09;机制超时重传机制 首部长度窗口大小报文类型URGACKSYNPSHFINRST 滑动窗口滑动窗口的大小怎么设定怎么变化滑动窗口变化问题 TCP报头格式 端口号 两个端口号比较好理解&#xff0c;通过端口号来找…

福卡红包V3.0.1全开源解密版

简介&#xff1a; 1、优化响应速度 怎么玩这个福卡红包福卡红包V3.0.1全开源解密版&#xff1a; 1、简单说明 由于红包现在低1块钱&#xff0c;对一般的运营者来说成本不低&#xff0c;除非让商家出钱&#xff0c;所以吸粉并不划算&#xff0c;这个模块我认为适合做广告推广&a…

高压放大器如何正常使用的呢

高压放大器是一种用于将低电压信号转换成高电压信号的电子设备。它广泛应用于通信、雷达、医疗设备等领域。正确使用高压放大器对于保证设备的正常运行和延长使用寿命至关重要。下面安泰将介绍高压放大器的使用方法和注意事项&#xff0c;帮助您更好地了解如何正确使用高压放大…