排名问题(row_number()函数, rank()函数, dense_rank()函数)
排名是数据库中的一个经典题目,实际上又根据排名的具体细节可分为3种场景:
连续排名
- row_number函数作用:查出指定条件后的进行排名,条件相同排名也不相同,排名间断不连续。例薪水3000、2000、2000、1000排名结果为1-2-3-4
row_number()函数语法:
row_number() over(业务逻辑)
总排名不连续
- rank()函数作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续。例如同样的薪水分布,排名结果为1-2-2-4
rank函数语法:
rank() over(业务逻辑)
总排名连续
- dense_rank()函数作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续。例同样的薪水排名结果为1-2-2-3
dense_rank() 函数语法:
dense_rank() over(业务逻辑)