sql >> Databáze >  >> RDS >> Oracle

SQL Sub-Query - jak najít minimální hodnotu

Efektivnějším přístupem je obecně použití analytických funkcí

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

Můžete však také použít poddotaz

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)

Obě tyto metody vrátí více řádků, pokud existuje více oddělení, která jsou shodná s nejnižším rozpočtem. Pomocí metody analytické funkce můžete použít row_number funkci spíše než rank libovolně zlomit nerozhodný výsledek, pokud chcete pokaždé vrátit přesně 1 řádek.



  1. Největší bezpečnostní hrozby PostgreSQL

  2. Vizualizace dat

  3. Proč používat MySQL přes ploché soubory?

  4. Jak vytvářet a mazat databáze a tabulky v MySQL