Użyj funkcji analitycznej
SELECT value
FROM (SELECT value,
dense_rank() over (order by value asc) rnk
FROM table)
WHERE rnk = 2
Funkcje analityczne RANK , DENSE_RANK i ROW_NUMBER są identyczne, z wyjątkiem tego, jak radzą sobie z krawatami. RANK wykorzystuje proces łamania remisów w stylu sportowym, więc jeśli dwa rzędy remisują na pozycji 1, następny rząd ma pozycję 3. DENSE_RANK daje obydwóm wierszom zajmującym pierwsze miejsce w rankingu 1, a następnie przypisuje następnemu wierszowi w rankingu 2. ROW_NUMBER arbitralnie przerywa remis i przyznaje jednemu z dwóch wierszy o najniższej wartości ocenę 1, a drugiemu ocenę 2.