これを達成する方法は本当にありますか?最近の面接でこの質問をされましたが、質問する機会が与えられたときに面接官に解決策を尋ねるのを忘れていました.
これを行うためにあらゆる方法を試しましたが、サブクエリを使用しないと方法が見つからないようです。給与だけでなく、名前と給与の両方を表示する必要があります。
テーブル全体を給与の降順で並べ替え、最初の行のみをフェッチする場合があります。ただし、非常に巧妙なインタビューの質問とは思えません。
MySQL を使用している場合は、 limit を使用できます。
select *
from employee
order by salaray desc
limit 0,1
制限が実装されていない場合(オラクルのように)、サブクエリなしでそれを行う方法はないと思います
この例を試してください (salary が null 可能でないことを前提としています)
SELECT a.*
FROM employee a
LEFT JOIN employee b
ON b.salary > a.salary
WHERE b.salary IS NULL;