阅读量:150
ROW_NUMBER和DENSE_RANK是窗口函数,用于对查询结果集中的行进行排名操作。它们的主要区别在于处理相同排名的行时的方式。
ROW_NUMBER:
- 如果有多行具有相同的排序值,则
ROW_NUMBER为每行分配一个唯一的顺序号。 - 例如,如果存在两个第一名,则
ROW_NUMBER会为它们分配不同的排名值。
DENSE_RANK:
- 如果有多行具有相同的排序值,则
DENSE_RANK会为它们分配相同的排名值。 - 例如,如果存在两个第一名,则
DENSE_RANK会为它们分配相同的排名值。
因此,当需要确保每个行都有唯一的排名值时,可以使用ROW_NUMBER;而当希望相同排名的行具有相同的排名值时,可以使用DENSE_RANK。