sql >> Database teknologi >  >> RDS >> Oracle

SQL Sub-Query - hvordan man finder en min værdi

Den mere effektive tilgang er generelt at bruge analytiske funktioner

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

Du kan dog også bruge en underforespørgsel

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)

Begge disse metoder vil returnere flere rækker, hvis der er flere afdelinger, der er bundet til det laveste budget. Med den analytiske funktionsmetode kan du bruge row_number funktion i stedet for rank til vilkårligt at bryde uafgjort, hvis du vil returnere præcis 1 række hver gang.



  1. Veltalende at finde rækken med maks. værdi med gruppering

  2. Array i Mysql HVOR LIKE?

  3. Vælg forespørgsel ved hjælp af betingelsen

  4. Opret og konfigurer Oracle Linked Server i SQL Server