如何使用 SQL 在数据库表中的属性(列)下打印前两个最大值?
我有一个名为的列salary
,其中包含不同的行(大约 10 行)。我们需要打印出前两个最大值。
我知道我们可以通过使用函数来获得第一个最大值max
,但是如果我需要前两个值该怎么办?
如何使用 SQL 在数据库表中的属性(列)下打印前两个最大值?
我有一个名为的列salary
,其中包含不同的行(大约 10 行)。我们需要打印出前两个最大值。
我知道我们可以通过使用函数来获得第一个最大值max
,但是如果我需要前两个值该怎么办?
也许是这样的?(mysql)
select `salary` from `mytable` order by `salary` desc limit 2
根据 Alex 的回答,您可以添加distinct
关键字以确保获得两个不同的值。
select distinct `salary` from `mytable` order by `salary` desc limit 2
在 SQL Server 中
SELECT TOP 2 salary
from table
order by salary desc
在 MySQL 中
SELECT salary
from table
order by salary desc
limit 2
select distinct salary from mytable order by salary desc limit 2;
好的,如果您只需要两个顶部,即使它们相等,其他的也有 rigth,但是如果您需要前 2 个数字(并且您不在乎它们是否有多个实例),您可以使用这个:
SELECT
Salary
FROM Salaries
GROUP BY Salary
ORDER BY Salary DESC
LIMIT 2