sql 开窗函数小结

1、相关函数说明

over() -- 指定窗口 窗口大小变化(partition by & order by )

current row -- 当前行

n preceding -- 往前1行

n following -- 往后1行

unbounded -- 起点

unbounded preceding -- 前面起点

unbounded following -- 后面起点

lag(col,n,default) -- 往前n行数据

lead(col,n,default) -- 往后n行数据

ntile(n) -- 把有序窗口的行分发到指定数据的组中,各个组有编号,编号从1开始,对于每一行,NTILE返回此行所属的组的编号。注意:n必须为int类型。

2.Rank

2.1 函数

rank()    【跳跃排序】1、1、3、4、5、5、6、6、9、10、10

dense_rank()  【连续重复】   1、1、2、3、4、4、5、5、6、7、7

row_number()  【连续不重复】 1、2、3、4、5、6、7、8、9、10、11

 2.2 用例明细

原始数据

1、1、3、5、6、6、8、8、9、10、10

执行

select row_number() over(order by no) `row_number` ,
       rank() over(order by no) `rank`,
       dense_rank() over(order by no)  `dense_rank`
from tab

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值