row_number() rank() dense_rank()区别
时间: 2024-03-15 12:26:20 浏览: 69
ROW_NUMBER(),RANK()和DENSE_RANK()之间的区别
row_number()、rank() 和 dense_rank() 都是窗口函数,用于在查询结果中给每行分配一个数字。它们的区别如下:
1. row_number():分配唯一的连续行号,不考虑重复行或分组的情况。
2. rank():分配排名,但如果有重复行,则会跳过下一个整数排名。例如,如果两行具有相同的值,则它们将获得相同的排名,下一行将获得下一个排名。
3. dense_rank():分配排名,但如果有重复行,则会跳过重复排名。例如,如果两行具有相同的值,则它们将获得相同的排名,下一行将获得下一个不同的排名。
综上所述,row_number() 分配唯一的行号,而 rank() 和 dense_rank() 分配排名,但它们处理重复值的方式不同。
阅读全文