如何使用SQL在数据库列中打印前2个最大值?

时间:2012-08-28 08:15:34

标签: mysql sql sql-server

如何使用SQL在数据库表中的属性(列)下打印前两个最大值?

我有一个名为salary的列包含不同的行(大约10行)。我们需要打印出前两个最大值。

我知道我们可以使用max函数获得第一个最大值,但如果我需要前两个值,我该怎么办?

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

在SQL Server中

SELECT TOP 2 salary
from table
order by salary desc

在MySQL中

SELECT salary
from table
order by salary desc
limit 2

答案 2 :(得分:0)

select distinct salary from mytable order by salary desc limit 2;

答案 3 :(得分:0)

好的如果你只需要两个顶部,即使它们是相同的,其他的也是必须的,但是如果你需要前两个数字(并且你不关心它们是否有多个实例)你可以使用这个:

SELECT 
Salary 
FROM Salaries
GROUP BY Salary
ORDER BY Salary DESC
LIMIT 2