0

SQLを使用してデータベーステーブルの属性(列)の下にある最初の2つの最大値を出力するにはどうすればよいですか?

salaryさまざまな行(約10行)を含む名前の列があります。最初の2つの最大値を出力する必要があります。

関数を使用して最初の最大値を取得できることはわかってmaxいますが、最初の2つの値が必要な場合はどうすればよいですか?

4

4 に答える 4

3

おそらくこのようなものですか?(mysql)

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

Alexの回答に従って、distinctキーワードを追加して、2つの異なる値を確実に取得できます。

select distinct `salary` from `mytable` order by `salary` desc limit 2
于 2012-08-28T08:18:35.567 に答える
3

SQLServerの場合

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

2つのトップのみが必要な場合は、たとえそれらが同じであっても、他のものには権利がありますが、トップ2の数字が必要な場合(そしてそれらから複数のインスタンスがあるかどうかは気にしません)、これを使用できます:

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