排序函数:
1.row_number() over(order by liename):根据order by后面的字段排序,为每一行给定一个唯一的行号
select row_number() over( order by iname desc ) as rowid ,iname from test

2.Rank():根据order by 后面的字段排序,order by后面的字段值相同序号就相同,序号可能是不连续的
select distinct rank() over( order by iname desc ) as rowid ,iname,iage from test

3. dense_rank():根据order by 后面的字段排序,order by后面的字段值相同序号就相同,序号是连续的
select distinct dense_rank() over( order by iname desc ) as rowid ,iname from test

4. ntile():先根据order by 后面对的字段排序,然后将排序结果分成规定的几个组,并为每个组指定一个组号
select distinct ntile(5) over( order by iname desc ) as rowid ,iname,iage from test order by rowid

总结:
1.row_number() over(order by liename):根据order by后面的字段排序,为每一行给定一个唯一的行号
2.Rank():根据order by 后面的字段排序,order by后面的字段值相同序号就相同,序号可能是不连续的
3. dense_rank():根据order by 后面的字段排序,order by后面的字段值相同序号就相同,序号是连续的
4. ntile():先根据order by 后面对的字段排序,然后将排序结果分成规定的几个组,并为每个组指定一个组号
本文介绍了SQL中的四种窗口函数:row_number(), rank(), dense_rank() 和 ntile() 的使用方法及区别。这些函数常用于复杂的数据排序场景,如为每行分配唯一编号、处理相同排序值的情况、连续排名以及分组等。
253

被折叠的 条评论
为什么被折叠?



