Použijte analytickou funkci
SELECT value
FROM (SELECT value,
dense_rank() over (order by value asc) rnk
FROM table)
WHERE rnk = 2
Analytické funkce RANK
, DENSE_RANK
a ROW_NUMBER
jsou identické kromě toho, jak zacházejí s vazbami. RANK
používá proces lámání remíz ve sportovním stylu, takže pokud se dvě řady shodují na pozici 1, další řada má pozici 3. DENSE_RANK
přidělí oběma řádkům shodným o první místo pořadí 1 a poté přiřadí dalšímu řádku pořadí 2. ROW_NUMBER
libovolně přeruší remízu a přidělí jedné ze dvou řad s nejnižší hodnotou hodnost 1 a druhé hodnost 2.