row_number() over(partition by col1 order by col2) as 别名
表示根据col1分组,在分组内部根据col2排序
而这个“别名”的值就每组内部排序后的顺序编号(组内连续的唯一的)
partition by col1 可省略。
------------------------------------
例子:
根据用户名分组,在分组内部根据用户名排序 (组内连续的唯一的编码)
select * from
(
select id,name,row_number() over(partition by name order by name) Rownumberf
from users
) t
where t.Rownumberf = 1