2012-08-28 43 views
0

如何使用SQL在數據庫表的屬性(列)下打印前兩個最大值?如何使用SQL打印數據庫列中的前2個最大值?

我有一個名爲salary的列,它包含不同的行(大約10行)。我們需要打印出前兩個最大值。

我知道我們可以通過使用max函數獲得第一個最大值,但是如果我需要前兩個值,該怎麼辦?

+0

SQL Server或MySQL,這是它嗎?打定主意 – podiluska

+0

如果你的表中有1000,1000,900,那麼你需要1000,1000作爲輸出或者1000和900。 –

回答

3

也許像這樣? (MySQL的)

select `salary` from `mytable` order by `salary` desc limit 2 

按Alex的回答,您可以添加distinct關鍵字,以確保您得到兩個不同的值。

select distinct `salary` from `mytable` order by `salary` desc limit 2 
3

在SQL Server

SELECT TOP 2 salary 
from table 
order by salary desc 

在MySQL

SELECT salary 
from table 
order by salary desc 
limit 2 
0
select distinct salary from mytable order by salary desc limit 2; 
0

好吧如果你只需要兩個頂部,即使是相等的,該有的都有了分辯,但如果你需要前2號碼(你不關心是否有多個實例),你可以使用這個:

SELECT 
Salary 
FROM Salaries 
GROUP BY Salary 
ORDER BY Salary DESC 
LIMIT 2 
相關問題