dense_rank(),RANK()和row_number()是SQL中的排序函数。 为方便后面的函数差异比对清晰直观,准备数据表如下: 1.dense_rank() 函数语法:dense_rank() over( order by 列名 【desc/asc】) DENSE_RANK()是连续排序,比如遇到相同的数值时,排序时,是1 2 2 3 序号连续的。 按照分数从高到低排名:
select name,score , dense_rank() over( order by score desc) from test.test001;
按照分数从低到高排序:
2.RANK()函数语法:rank() over(order by 列名【desc/asc】) RANK()是不连续排序,比如遇到相同的数值时,排序时,是1 2 2 4 ,会跳过3。 比如: 3.row_number()函数语法:row_number() over(order by 列名) 【desc/asc】) row_number()是不考虑重复数据的,比如遇到相同的数值时,排序时,是1 2 3 4 ,依次排序。 比如: