over函数

分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。
over函数
  over函数指定了分析函数工作的数据窗口的大小,这个数据窗口大小可能会随着行的变化而变化
(开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下:)
常见的搭配 与over 开窗函数row_number() over(partition by ... order by ...)  
rank() over(partition by ... order by ...)  
dense_rank() over(partition by ... order by ...)  
count() over(partition by ... order by ...)  
max() over(partition by ... order by ...)  
min() over(partition by ... order by ...)  
sum() over(partition by ... order by ...)  
avg() over(partition by ... order by ...)  
first_value(参数) over(partition by ... order by ...)  
last_value() over(partition by ... order by ...)  
lag() over(partition by ... order by ...)  
lead() over(partition by ... order by ...
---------------------------------------------------------------
partition by 分区
基表 emp表
select * from emp;
-------------------------------
select empno,ename,sal,comm,deptno,sum(sal) over(order by deptno desc)
from emp
按照deptno排序进行累计, order by 是个开窗函数

------------------------
select empno,ename,sal,comm,deptno,first_value(sal)over(partition by deptno ) "部门最大值"
from emp;

select empno,ename,sal,comm,deptno,LAST_value(sal)over(partition by deptno ) "部门最小值"
from emp;

select empno,ename,sal,comm,deptno,row_number() over(partition by deptno order by sal)
from emp 可以看到每个人的工资在各自组中的排名



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值