Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wybierz drugą najbardziej minimalną wartość w Oracle

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przykład funkcji Oracle (numer zwrotu)

  2. SQL Join na wartościach null

  3. 27 skryptów Oracle dba dla bazy danych Oracle dla administracji i monitorowania

  4. WSTAW 10 milionów zapytań w ciągu 10 minut w Oracle?

  5. Błąd 1033 otrzymał logowanie do trybu gotowości