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

Jak uzyskać drugi co do wielkości lub trzeci co do wielkości wpis z tabeli?

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


Jeśli oczekujesz, że więcej niż jeden wiersz będzie miał taką samą wartość w your_sort_column możesz również użyć funkcji rank()

SELECT *
FROM (
  SELECT some_column, 
         rank() over (order by your_sort_column desc) as row_rank
  FROM some_table
) t
WHERE row_rank = 3
To może zwrócić więcej niż jeden wiersz..

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zdefiniować klucz podstawowy automatycznego przyrostu w Oracle?

  2. Rozwiązanie problemu Drop Column Bug w Oracle 18c i 19c

  3. EF 4, jak dodać częściowe klasy

  4. Zapytanie, aby znaleźć pełne skany tabeli w Oracle

  5. Grupuj wiele instrukcji SELECT podczas wywoływania Oracle z ADO.NET