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
结果