一、rank 排序
1. row_number() over()
在各个分组内从1开时排序
也可不分组进行排序,给样本小到大无重复值进行排序
A 101 1
A 102 2
A 103 3
A 104 4
A 105 5
B 209 1
C 308 1
C 308 2
C 407 3
2. rank() over()
跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)
A 101 1
A 102 2
A 103 3
A 104 4
A 105 5
B 209 1
C 308 1
C 308 1
C 407 3
C 512 4
3. dense_rank() over()
是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的
A 101 1
A 102 2
A 103 3
A 104 4
A 105 5
B 209 1
C 308 1
C 308 1
C 407 2
C 512 3
二、lag & lead
1. lag
语法:LAG ( scalar_expression [ ,offset ] , [ default ] ) OVER ( [ partition_by_clause ] order_by_clause )
offset是