說我有一張僱員表,我在一列中保留僱員的姓名,在另一列中保留僱員的工資。我應該寫什麼SQL來找到繪製第二高薪水的僱員的名字?用於查找第二高的SQL
0
A
回答
1
您可以嘗試從「Top 2」中選擇,按升序排序,然後選擇「Top 1」,這會給你正確的行。
+0
頂2排序升序給你兩個最低的薪水? – msmucker0527 2013-03-07 19:04:07
+0
檢查...降級!感謝收穫 – 2013-03-07 19:42:47
0
你可以這樣做:
select * from (select * from Employees order by salary desc limit 2) as A order by salary asc limit 1;
2
我會用row_number()
:
select e.*
from (select e.*, row_number() over (order by salary desc) as seqnum
from employees e
) e
where seqnum = 1
其他人所說的limit
/top
/rownum
方法:
select e.*
from (select e.*
from employees e
order by salary desc
limit 2
) t
order by salary
limit 1
你可以做偏移量相同的東西:
select e.*
from employees e
order by salary desc
limit 2, 1
然而,這些都有一個問題,如果你有最高的薪水領帶。第一種方法是容易被取代row_number()
與dense_rank()
固定:
select e.*
from (select e.*, dense_rank() over (order by salary desc) as seqnum
from employees e
) e
where seqnum = 1
而且,另一種方法是:
select e.*
from employees e
where e.salary < (select max(salary) from employees)
order by salary desc
limit 1 -- or top 1 or rownum = 1 etc.
相關問題
- 1. 用於查找第二高薪水的SQL命令
- 2. 使用ROW_NUMBER()查找Sql Server中的第二高
- 3. 基於第一個查找輸出的第二次查找
- 4. 用第二個查找表解碼一個表的SQL查詢
- 5. 查找二叉查找樹的高度
- 6. 用於查找數據庫中第二大值的行的SQL命令
- 7. 找到第二高的<attribute>
- 8. 在sql中找到第二高的每個組?
- 9. 查找第二VLOOKUP值
- 10. 熊貓:查找與第二最高值的行指數
- 11. 找到第二個最高有效位
- 12. 找到第二個最高值
- 13. 查找第二高值而不是最大值「-1」
- 14. 查找列號並將其值排在第二個最高值
- 15. 在Excel中按列A查找第二最高條目?
- 16. 如何檢查Python中一組值的最高,第二高,第三高等等?
- 17. 用於在SQL中查找相似值的高性能技術?
- 18. 在不使用數組的情況下查找第二高的數字
- 19. 返回二叉查找樹的高度
- 20. VBA查找倒數第二行的值
- 21. 用於MEM查找的高效算法
- 22. 用於查找列中未使用的第一個值的SQL查詢
- 23. 用JavaScript查找本月的第二個和第四個星期二
- 24. SQL Server 2008 R2:查找表中第二大數
- 25. SQL - 查找第n個具有更高性能的最高金額
- 26. 擊:找到基於第二列
- 27. SQL查詢找到第N個最高工資
- 28. 使用sql查找第n行
- 29. 使用mysql查找第一行數和第二行數
- 30. 的Oracle SQL,第一查詢的使用結果來執行第二查詢
看看這裏:http://stackoverflow.com/questions/32100/what-是最簡單的sql查詢找到第二大值 – niculare 2013-03-07 19:01:45
您使用哪種RDBMS? – 2013-03-07 19:01:53
請參閱[這裏](http://stackoverflow.com/questions/4297160/sql-command-for-finding-the-second-highest-salary?rq=1)。非常簡單的查詢,真的。 – fcm 2013-03-07 19:03:39