1.row_number() over()
功能一:排序(无分组)
row_number()over(order by column) 排序,列出序号
over()里头的分组以及排序的执行晚于 where group by order by 的执行
例如:
Select t.id,row_number()over(order by t.id ) from DUP_MQD_YLFL t
功能二:分组排序
row_number()over(partition by column order by column)
partition by 后面的column是需要分组字段
例如
Select t.id,t.name1,row_number() over(partition by t.name1 order by t.id) from DUP_MQD_YLFL t
2.rank() over ()是跳跃排序,有两个第二名时接下来就是第四名(同样是在各个分组内)
例如:
select t.group_id,t.dir_code,rank()over(partition by t.dir_code order by t.create_time) from HEC_DUP_COM_PUB_RESULT t
3.dense_rank() over()是连续排序,有两个第二名时仍然跟着第三名。相比之下row_number是没有重复值的
select t.group_id,t.dir_code,dense_rank()over(partition by t.dir_code order by t.create_time) from HEC_DUP_COM_PUB_RESULT t