有三個函數:
rank()
dense_rank()
row_number()
拿一個表Employee作為例子:
Name Salary --------------- abc 100000 bcd 1000000 efg 40000 ghi 500000
jkl 500000
查詢腳本:
```sql
select name,
salary,
rank() over(order by salary) as rnk,
dense_rank() over(order by salary) as dense_rnk,
row_number() over(order by salary) as row_number
from Employee;
查詢結果:
name salary rnk dense_rnk row_number
efg 40000 1 1 1
abc 100000 2 2 2
ghi 500000 3 3 3
jkl 500000 3 3 4
bcd 1000000 5 4 5
通過dense_rank()可以查詢根據salary排序獲得任意一名
參考網站:https://www.geeksforgeeks.org/sql-query-to-find-second-largest-salary/