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

Truy vấn phụ SQL - cách tìm giá trị nhỏ nhất

Cách tiếp cận hiệu quả hơn nói chung là sử dụng các hàm phân tích

SELECT hospitalcode,
       name,
       ward,
       annualbudget
  FROM (SELECT h.hospitalcode,
               h.name,
               w.wardno,
               w.annualbudget,
               rank() over (order by w.annualbudget asc) rnk
          FROM hospital h
               JOIN ward w
                 ON (h.hospitalcode = w.hospitalcode))
 WHERE rnk = 1

Tuy nhiên, bạn cũng có thể sử dụng truy vấn con

SELECT h.hospitalcode,
       h.name,
       w.wardno,
       w.annualbudget
  FROM hospital h
       JOIN ward w
         ON (h.hospitalcode = w.hospitalcode)
 WHERE w.annualbudget = (SELECT MIN(annualbudget)
                           FROM ward)

Cả hai phương pháp này sẽ trả về nhiều hàng nếu có nhiều phường được ràng buộc cho ngân sách thấp nhất. Với phương pháp hàm phân tích, bạn có thể sử dụng row_number chức năng hơn là rank để tự ý bẻ dây nếu bạn muốn trả về chính xác 1 hàng mỗi lần.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Số Oracle và tham gia varchar

  2. Chọn 150 hàng đầu tiên, sau đó 150 hàng tiếp theo, v.v.?

  3. node.js oracledb Không Chèn cũng không Cập nhật

  4. Làm thế nào để nhiều hàng có thể được nối thành một trong Oracle mà không cần tạo một thủ tục được lưu trữ?

  5. Sự khác biệt giữa "không có trong" và "không tồn tại" là gì?