sql >> Database >  >> RDS >> Oracle

Hoe u de op één na grootste of de op twee na grootste invoer van een tafel kunt krijgen?

SELECT *
FROM (
  SELECT some_column, 
         row_number() over (order by your_sort_column desc) as row_num
  FROM some_table
) t
WHERE row_num = 3


Als u verwacht dat meer dan één rij dezelfde waarde heeft in your_sort_column je kunt ook de functie rank() gebruiken

SELECT *
FROM (
  SELECT some_column, 
         rank() over (order by your_sort_column desc) as row_rank
  FROM some_table
) t
WHERE row_rank = 3
Dit kan meer dan één rij retourneren..

  1. java.sql.SQLException:geen geschikte driver gevonden voor jdbc:mysql://localhost:3306/dbname

  2. Kleur en lettertypen wijzigen in SQL Server Management Studio (SSMS) - SQL Server / TSQL-zelfstudie, deel 12

  3. Wat is de snelste manier om de mediaan te berekenen?

  4. SQL-impasses vermijden met het afstemmen van zoekopdrachten:advies van Brent Ozar