假設資料庫內有一欄位為薪資欄位,要怎麼用sql語法找出第二高的薪資呢?
大家都知道sql語法中有一個max()的語法可以幫助我們取得最大值,但如果今天我們需要取得第二大的呢?
這裡有兩個方法
(1)
SELECT max(Salary)
FROM Employee
WHERE Salary < (SELECT max(Salary) FROM Employee)
使用max(),並且限制條件為比最大的值還要小,就可以順利找到啦!
(2)
select (
select distinct Salary from Employee order by Salary Desc limit 1 offset 1
)as SecondHighestSalary
使用order by, limit,offset
通常limit offset都會伴隨order by 出現
相信大家都對order by 排列不陌生
limit 則是限制列出的筆數
ex: limit 1 即為列出一筆資料
offset 則是忽略的資料筆數
因此這邊的語法就是利用order by排列後,取得一筆最大的資料,但是offset會忽略第一筆資料,因此我們就可以得到第二高的薪資了
此題在leetcode也有出現
文章標籤
全站熱搜
留言列表