Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment obtenir la deuxième ou la troisième plus grande entrée d'une table

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


Si vous vous attendez à ce que plusieurs lignes aient la même valeur dans your_sort_column vous pouvez également utiliser la fonction 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
Cela peut renvoyer plus d'une ligne.