1要求取第二高的薪水
解题思路:可以结合order by 和limit函数
详细介绍(很多年前从一个博主大大那边截图下来的笔记,觉得非常详细)
2要求展示分数排名,分数相同排名相同,后续排名连续不跳跃
总体SQL排名展示可以通过三大窗口函数实现;ROW_NUMBER(),DENSE_RANK(),RANK()
1、ROW_NUMBER() 赋予唯一的连续位次。
例如,有3条排在第1位时,排序为:1,2,3,4······
2、DENSE_RANK() 在计算排序时,若存在相同位次,不会跳过之后的位次。
例如,有3条排在第1位时,排序为:1,1,1,2······
3、RANK() 在计算排序时,若存在相同位次,会跳过之后的位次。
例如,有3条排在第1位时,排序为:1,1,1,4······
窗口函数用法:
<窗口函数> OVER (ORDER BY <排序用列清单> )