N º salario máximo en Oracle

Para averiguar la sal máxima Nth en Oracle estoy usando la siguiente consulta

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

Pero de acuerdo con mí, utilizando la consulta anterior, tomará más tiempo ejecutar si el tamaño de la tabla es grande.

Estoy tratando de usar la siguiente consulta

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

pero no obteniendo resultados ... ninguna sugerencia, por favor ... Comparta cualquier enlace sobre cómo optimizar las consultas y reducir el tiempo de ejecución de una consulta.

Respuestas a la pregunta(22)

Su respuesta a la pregunta