Oracle
 sql >> база данни >  >> RDS >> Oracle

SQL Sub-Query - как да намерите минимална стойност

По-ефективният подход обикновено е използването на аналитични функции

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

Можете също така да използвате подзаявка

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)

И двата метода ще върнат множество редове, ако има няколко отделения, които са обвързани с най-ниския бюджет. С метода на аналитичната функция можете да използвате row_number функция, а не rank за произволно прекъсване на равенството, ако искате да връщате точно 1 ред всеки път.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PLS-00103:Срещнахте символа „край на файла“ в блок за проста актуализация

  2. Проблем с процедурата за изпълнение в PL/SQL Developer

  3. oracledb верижно sql повикване с помощта на обещания

  4. Конвертирайте LONG във varchar в Oracle

  5. Вмъкване на дата в база данни на oracle от PHP