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

SQL Sub-Query - jak znaleźć minimalną wartość

Bardziej wydajnym podejściem jest generalnie użycie funkcji analitycznych

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

Możesz też użyć podzapytania

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)

Obie te metody zwrócą wiele wierszy, jeśli istnieje wiele oddziałów powiązanych z najniższym budżetem. Dzięki metodzie funkcji analitycznej możesz użyć row_number funkcja zamiast rank arbitralnie zerwać remis, jeśli chcesz za każdym razem zwracać dokładnie 1 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. Właściwy sposób na ustawienie ORACLE_HOME?

  2. Jak zaimportować zrzut Oracle z instancji ec2 do RDS w AWS

  3. różnica między tabelą tab a all_tables w Oracle

  4. Jak uzyskać ładnie sformatowane wyniki z procedury Oracle, która zwraca kursor referencyjny?

  5. WSTAW Oracle ze ścieżką bezpośrednią