如何使用SQL在数据库表中的属性(列)下打印前两个最大值?
我有一个名为salary
的列包含不同的行(大约10行)。我们需要打印出前两个最大值。
我知道我们可以使用max
函数获得第一个最大值,但如果我需要前两个值,我该怎么办?
答案 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