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

Druhá nejvyšší hodnota z tabulky Oracle DB

Použil bych funkci okna:

select *
from (
  select u.*, dense_rank() over (order by balance desc) as rnk
  from users u
) t
where rnk = 2;

Nemyslím si, že ve vašem dotazu bude velký rozdíl ve výkonu (zejména ne s indexem na balance ), ale podle mého názoru je to jednodušší na čtení a údržbu.



  1. Magento:Přidejte atributy produktu pomocí instalačního skriptu modulu

  2. Oracle PL/SQL:odstranění mezer z řetězce

  3. MYSQL - Jak obejít limit velikosti řádku 66 kB

  4. Rozdělte čárkami oddělené hodnoty sloupce v řádku pomocí dotazu Oracle SQL