sql >> Databáze >  >> RDS >> Oracle

Jak získat druhý největší nebo třetí největší záznam z tabulky

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


Pokud očekáváte, že více než jeden řádek bude mít stejnou hodnotu v your_sort_column můžete také použít funkci 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
To může vrátit více než jeden řádek..

  1. Jak vyberete každý n-tý řádek z mysql

  2. MyBatis RowBounds neomezuje výsledky dotazů

  3. Jak PLAY_SOUND v Oracle Forms

  4. Chyba syntaxe u uživatele nebo v jeho blízkosti při přidávání omezení Postgres