0

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

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

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

4

4 回答 4

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
于 2012-08-28T08:18:35.567 回答
3

在 SQL Server 中

SELECT TOP 2 salary
from table
order by salary desc

在 MySQL 中

SELECT salary
from table
order by salary desc
limit 2
于 2012-08-28T08:18:58.427 回答
0
select distinct salary from mytable order by salary desc limit 2;
于 2012-08-28T08:19:09.217 回答
0

好的,如果您只需要两个顶部,即使它们相等,其他的也有 rigth,但是如果您需要前 2 个数字(并且您不在乎它们是否有多个实例),您可以使用这个:

SELECT 
Salary 
FROM Salaries
GROUP BY Salary
ORDER BY Salary DESC
LIMIT 2
于 2012-08-28T08:23:05.820 回答