oracle分析函数over的简单使用

本文深入解析了Oracle数据库中OVER函数的应用,通过实例演示了如何使用OVER函数进行连续求和、总和计算及份额百分比的计算。文章对比了不同OVER函数参数设置下,如PARTITION BY和ORDER BY的作用效果,帮助读者理解其在复杂查询中的灵活性和强大功能。

Oracle over()函数的使用:
在阿里云中datawork的over函数用法与这个是一样的用法:
说在前面:over (partition by) 相当于groupby分组的用法,而且毕她的用法更加好用。

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 ;

结果展示:(这个数据是自己编写的,可能和oracle实际的emp数据不一致)
在这里插入图片描述

现在进行代码含义的解释:

1,Oracle over()函数使用子分区查出各部门薪水的连续总和。
不同的over(。。。)的条件:,看下面的文字和图片:


A,sum(sal) over (partition by deptno order by ename):按部门“连续”求总和。
在这里插入图片描述


B,sum(sal) over (partition by deptno) :按部门求总和。
在这里插入图片描述


C,sum(sal) over (order by deptno,ename):先按部门排序,然后再按名字排序进行‘连续’求总和
在这里插入图片描述


D,sum(sal) over() 求所有员工薪资总和,相当于sum(sal)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值