データが次のようなテーブルがあります。
Name Salary
Tom 10000
John 20000
Ram 20000
Danny 15000
Sandy 14000
Riddle 15000
cte
;を使用して 2 番目に高い給与を見つけることができます。
with cte
as
(
select ROW_NUMBER() over (order by Salary desc) as r,
* from Employee e
)
select * from cte where r=2
しかし、これは 'Ram' という結果になり、給与は 20000 になります。返してほしいのは、給与ランキングが n 位の人々のすべてのレコードです。たとえば、 を探している場合n=2
、結果は次のようになります。
Danny 15000
Riddle 15000
これを達成するためにクエリを変更するにはどうすればよいですか?