N-ta maksymalna pensja w Oracle

Aby dowiedzieć się o N-tym maks salach w wyroczni, używam poniższego zapytania

SELECT DISTINCE sal 
FROM emp a 
WHERE (
       SELECT COUNT(DISTINCE sal) 
       FROM emp b 
       WHERE a.sal<=b.sal)=&n;

Ale według mnie użycie powyższego zapytania zajmie więcej czasu, jeśli rozmiar tabeli jest duży.

Próbuję użyć poniższego zapytania

SELECT sal 
FROM (
      SELECT DISTINCE sal 
      FROM emp 
           ORDER BY sal DESC ) 
WHERE rownum=3;

ale nie uzyskuję danych wyjściowych .. wszelkie sugestie proszę .. Proszę podzielić się dowolnym linkiem na temat optymalizacji zapytań i skrócić czas wykonania zapytania.

questionAnswers(22)

yourAnswerToTheQuestion