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

Vyberte druhou nejnižší minimální hodnotu v Oracle

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.



  1. Jak získat data za poslední měsíc v MySQL

  2. SQLiteException pomocí WHERE +KEY_Date+='+date+'

  3. Znamená vývoj kontaktních informací změnu vaší databáze?

  4. SQLite Přejmenovat sloupec