Может кто-нибудь сказать, пожалуйста, как найти N-ую самую большую запись из таблицы в Oracle?
Как и для самого большого, мы можем использовать MAX (column_name) Есть ли эффективный способ найти n-ую наибольшую также ?
SELECT DISTINCT (a.sal) FROM EMP A WHERE &N = ( SELECT COUNT (DISTINCT (b.sal)) FROM EMP B WHERE a.sal<=b.sal );
Замените &N на желаемый номер.Например, 2 даст вам вторую по величине зарплату.
&N
2
Если вы используете PL / SQL, просто выполните инструкцию.Это подскажет для N.
Вы можете ORDER BY column name, а затем LIMIT 1,1, чтобы получить второй
ORDER BY column name
LIMIT 1,1
edit
К сожалению, тег Oracle не был найден, извините. ORDER BY column name WHERE ROWNUM = 2 должно работать лучше.
ORDER BY column name WHERE ROWNUM = 2