如何從表中檢索第二高的值?從表中檢索第二高的值
回答
在MySQL中,你可以例如使用LIMIT 1, 1
:
SELECT col FROM tbl ORDER BY col DESC LIMIT 1, 1
見MySQL reference manual: SELECT Syntax)。
LIMIT子句可用於約束SELECT語句返回的行數。 LIMIT需要一個或兩個數字參數,它們都必須是非負整數常量(除了使用預準備語句時)。
使用兩個參數,第一個參數指定要返回的第一行的偏移量,第二個參數指定要返回的最大行數。在初始行的偏移量是0(不是1):
SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15
可能:
SELECT * FROM table ORDER BY value DESC LIMIT 1, 1
也許..?順便說一句,如果你縮進你的代碼四個空格,你會得到一個漂亮的輸出。 – Patrick 2010-06-15 09:02:36
select max(val) from table where val < (select max(val) form table)
SELECT E.lastname, E.salary FROM employees E
WHERE 2 = (SELECT COUNT(*) FROM employess E2
WHERE E2.salary > E.salary)
從here
採取這一工作在幾乎所有的Dbs
我相信>必須是> =。此外,如果任何較高排名的值有多個條目(例如,如果有兩名員工的薪水相同,並且您試圖讓員工獲得第二高薪水),那麼這將不起作用 – potatopeelings 2010-06-15 09:31:41
不是那樣得到第三個?如果它有兩個較大的值......但看起來很桃色。 – ANeves 2010-06-15 09:32:40
Select Top 1 sq.ColumnToSelect
From
(Select Top 2 ColumnToSelect
From MyTable
Order by ColumnToSelect Desc
)sq
Order by sq.ColumnToSelect asc
一個解決辦法是這樣的:
SELECT var FROM table ORDER BY var DESC LIMIT 1,1
酷,這幾乎是一樣的代碼高爾夫球選擇從表名順序頂部2 FIELD_NAME。
的Microsoft SQL Server 2005及更高版本:
SELECT *
FROM (
SELECT
*,
row_number() OVER (ORDER BY var DESC) AS ranking
FROM table
) AS q
WHERE ranking = 2
你需要使用'DENSE_RANK'來說明關係。 – 2010-08-11 08:37:56
試試這個
SELECT * FROM
(SELECT empno, deptno, sal,
DENSE_RANK() OVER (PARTITION BY deptno ORDER BY sal DESC NULLS LAST) DENSE_RANK
FROM emp)
WHERE DENSE_RANK = 2;
這個工作在兩個Oracle和SQL Server。
您的代碼在SQL Server上生成語法錯誤。毫無疑問可以移植,但。 – onedaywhen 2010-06-15 09:36:00
試試這個
SELECT TOP 1 Column FROM Table WHERE Column < (SELECT MAX(Column) FROM Table)
ORDER BY Column DESC
SELECT TOP 1 Column FROM (SELECT TOP <n> Column FROM Table ORDER BY Column DESC)
ORDER BY ASC
的N更改得到任何位置
- 1. 從地圖中檢索第一個值和第二個值
- 2. 檢索列表中的第二列
- 3. 如何檢查Python中一組值的最高,第二高,第三高等等?
- 4. 行值是第二表中的列名,需要從第二表
- 5. 如何從表中獲得第二高?
- 6. 檢索表格的第二個選項
- 7. 如何從陣列中獲得第二高值,第三高值等
- 8. 從第二表中檢索數據時,有沒有列關係
- 9. 來自第二個和第三個表的最高值的行
- 10. 從第三張表中檢索數據
- 11. 從mongodb的記錄中找出第二高的價值
- 12. 我無法檢索共享首選項中的第二個值
- 13. 檢索值從MySQL表的
- 14. 從MySQL表檢索倒數第二個記錄
- 15. 如何從哈希中獲得最高的第二個值
- 16. 我如何檢索第一個表和第二個表中的所有數據
- 17. 在LINQ聲明中檢查第二個表中的值
- 18. 要從xAxis中隱藏第二層的高分類圖表嗎?
- 19. 從表/記錄檢索值
- 20. 從HTML表格檢索值
- 21. Python:如何從文本中檢索第二個字
- 22. 檢索第二表中查詢笨子陣列
- 23. 從第二個表中選擇值,該ID在我的第一個表中
- 24. mysql從第二個表搜索帶搜索項的文本
- 25. 如何從2tuples列表中的最後一個條目中檢索第二個值?
- 26. 從表中取出第二個最高點,沒有唯一列
- 27. 使用聯接查詢,從第二個表中檢索數據缺席
- 28. 找到第二個最高值
- 29. VB.NET:什麼是從第二種形式檢索值的最佳方法?
- 30. 插入值插入第二表從第一表
你可以請發表您的表結構和你有什麼試過沒價值? – oezi 2010-06-15 08:33:05
和你正在使用的SQL方言。到目前爲止,似乎有兩個解決MySQL問題的答案,但我猜兩者都不適用於任何其他DBMS。 – Joey 2010-06-15 08:34:34
如果表中有多個組(例如,LAST_NAME列),並且您希望檢索AGE第二高的人的每個LAST_NAME,問題就會變得更加有趣。是這種情況,還是隻想要整個桌子的第二高? – thomaspaulb 2010-06-15 08:52:11