Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

SQL Sub-Query - cara menemukan nilai min

Pendekatan yang lebih efisien umumnya menggunakan fungsi analitik

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

Namun, Anda juga dapat menggunakan subkueri

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)

Kedua metode ini akan mengembalikan beberapa baris jika ada beberapa ward yang diikat untuk anggaran terendah. Dengan metode fungsi analitik, Anda dapat menggunakan row_number fungsi daripada rank untuk memutuskan ikatan secara sewenang-wenang jika Anda ingin mengembalikan tepat 1 baris setiap kali.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah pemicu Oracle dinonaktifkan untuk sesi saat ini?

  2. Oracle 11g Reports and Forms Properties Pembaruan massal

  3. Oracle Select Statement dalam kondisi IF

  4. Batas waktu OracleCommand

  5. KESALAHAN pada baris 191:ORA-01489:hasil rangkaian string terlalu panjang