Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Chọn giá trị nhỏ nhất thứ hai trong Oracle

Sử dụng một hàm phân tích

SELECT value
  FROM (SELECT value,
               dense_rank() over (order by value asc) rnk
          FROM table)
 WHERE rnk = 2

Các hàm phân tích RANK , DENSE_RANKROW_NUMBER giống hệt nhau ngoại trừ cách chúng xử lý các mối quan hệ. RANK sử dụng quy trình bẻ dây kiểu thể thao để nếu hai hàng hòa cho thứ hạng là 1, thì hàng tiếp theo có thứ hạng là 3. DENSE_RANK cung cấp cho cả hai hàng được ràng buộc ở vị trí đầu tiên xếp hạng là 1 và sau đó gán cho hàng tiếp theo thứ hạng là 2. ROW_NUMBER tự ý bẻ dây buộc và cho một trong hai hàng có giá trị thấp nhất xếp hạng 1 và hàng còn lại xếp hạng 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. Mảng trong mệnh đề IN () oracle PLSQL

  2. Hàm CHARTOROWID () trong Oracle

  3. Tập lệnh để tìm các phụ thuộc nhiều cấp của một gói

  4. Làm cách nào để tạo (hoặc lấy) tập lệnh ddl trên một bảng hiện có trong oracle? Tôi phải tạo lại chúng trong Hive

  5. Cách định dạng một số dưới dạng tiền tệ trong Oracle