Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como obter a segunda maior ou a terceira maior entrada de uma tabela

SELECT *
FROM (
  SELECT some_column, 
         row_number() over (order by your_sort_column desc) as row_num
  FROM some_table
) t
WHERE row_num = 3


Se você espera que mais de uma linha tenha o mesmo valor em your_sort_column você também pode usar a função rank()
SELECT *
FROM (
  SELECT some_column, 
         rank() over (order by your_sort_column desc) as row_rank
  FROM some_table
) t
WHERE row_rank = 3
Isso pode retornar mais de uma linha.