Меня попросили в интервью написать SQL-запрос, который извлекает первые три записи с наибольшим значением в некотором столбце из таблицы. Я написал запрос, который извлекал все записи с наивысшим значением, но не понял, как именно я могу получить только первые три записи этих.Простой вопрос по запросу базы данных
Не могли бы вы помочь мне в этом.
Спасибо.
Это не верно для Oracle. Он применяет WHERE перед ORDER BY, поэтому вы получаете 10 строк, которые соответствуют, затем сортирует их. –
@WW - Переход на удаление Oracle, например. тогда. Мое понимание этого не достаточно сложное, чтобы ответить на него полностью. Это было первоначально из ссылки, размещенной в ответе. –
В Oracle 'SELECT R. * FROM (SELECT * FROM SomeTable ORDER by FieldName DESC) R WHERE rownum <4' сделает трюк для вас. Конечно, есть еще один метод, включающий аналитические функции «LEAD, LAG» Oracle Analytical, которые здесь не рассматриваются. – Guru