Problem:
Du vill hitta rader som lagrar det minsta numeriska värdet i en kolumn.
Exempel:
Vår databas har en tabell som heter weather med data i följande kolumner:id , city och temperature .
| id | stad | temperatur |
|---|---|---|
| 1 | Houston | 23 |
| 2 | Atlanta | 20 |
| 3 | Boston | 15 |
| 4 | Cleveland | 15 |
| 5 | Dallas | 34 |
| 6 | Austin | 28 |
Så här hittar du städer med den lägsta temperaturen.
Lösning:
SELECT id, city, temperature FROM weather WHERE temperature = (SELECT MIN(temperature) FROM weather);
Här är resultatet:
| id | stad | temperatur |
|---|---|---|
| 3 | Boston | 15 |
| 4 | Cleveland | 15 |
Diskussion:
För att hitta minimivärdet för en kolumn, använd MIN() aggregerad funktion; det tar namnet på kolumnen eller uttrycket för att hitta minimivärdet. I vårt exempel returnerar underfrågan minimivärdet i temperature kolumn (underfråga:SELECT MIN(temperature) FROM weather ). Huvudfrågan visar id, stad och temperatur. Om du bara vill visa rader med minimala värden i kolumnen använder du WHERE med en underfråga (t.ex. SELECT MIN(temperature) FROM weather ). I WHERE-satsen placerar du kolumnnamnet med det relativa värdet som ska jämföras med värdet som returneras av aggregatfunktionen i underfrågan (WHERE temperature = (SELECT MIN(temperature) FROM weather) ).