row_number、dense_rank、rank
row_number()是为每组的行设置一个连续的递增的数字(123456)
ROW_NUMBER()over( partition by name order by score asc)as ROW NUMBER score
rank()是排名,也为每一组的行生成一个序号,如果有相同的值会生成相同的序号,并且接下来的序号是不连序的。例如:有三个人并列第一名,第四名序号为四(111456)
rank()over(partition by name order by score asc) as RANK score
DENSE_RANK()和RANK()类似,不同的是如果有相同的序号,那么接下来的序号不会间断例如:有三个人并列第一,第四名序号为2(111234)
DENSE_RANK()over(partition by name order by score asc) as DENSE_RANK score