深刻理解分析函数中RANK和DENSE RANK区别

时间:2021-02-08 20:37:19
深刻理解RANK和DENSE RANK区别

如果你要按照字段A分组,分组后排序,再筛选出前面N行的记录。
那么一般来说优先使用 Dense_Rank() over(Partition By 字段A Order By 字段B Desc) AS Dense_Rank

Dense_Rank 排序方式,遇到重复的一行数据后再往下不会跳号。这样不会遗漏一行数据

4 个解决方案

#1


一般情况下,连同 row_number 一起介绍。

#2


 row_number就是给每个分组标序列号用的

#3


例如现一个分组内有4行数据,其中2、3行数据重复。
row_number的排序为1 2 3 4
rank的排序为1 2 2 4
dense rank的排序为1 2 2 3

#4


你说的没错,所以如果时要筛选多个的话推荐用dense rank

#1


一般情况下,连同 row_number 一起介绍。

#2


 row_number就是给每个分组标序列号用的

#3


例如现一个分组内有4行数据,其中2、3行数据重复。
row_number的排序为1 2 3 4
rank的排序为1 2 2 4
dense rank的排序为1 2 2 3

#4


你说的没错,所以如果时要筛选多个的话推荐用dense rank