SQLを使用してデータベーステーブルの属性(列)の下にある最初の2つの最大値を出力するにはどうすればよいですか?
salary
さまざまな行(約10行)を含む名前の列があります。最初の2つの最大値を出力する必要があります。
関数を使用して最初の最大値を取得できることはわかってmax
いますが、最初の2つの値が必要な場合はどうすればよいですか?
SQLを使用してデータベーステーブルの属性(列)の下にある最初の2つの最大値を出力するにはどうすればよいですか?
salary
さまざまな行(約10行)を含む名前の列があります。最初の2つの最大値を出力する必要があります。
関数を使用して最初の最大値を取得できることはわかってmax
いますが、最初の2つの値が必要な場合はどうすればよいですか?
おそらくこのようなものですか?(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
SQLServerの場合
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;
2つのトップのみが必要な場合は、たとえそれらが同じであっても、他のものには権利がありますが、トップ2の数字が必要な場合(そしてそれらから複数のインスタンスがあるかどうかは気にしません)、これを使用できます:
SELECT
Salary
FROM Salaries
GROUP BY Salary
ORDER BY Salary DESC
LIMIT 2