Problem:
Du vil finde rækker, der gemmer den mindste numeriske værdi i en kolonne.
Eksempel:
Vores database har en tabel ved navn weather med data i følgende kolonner:id , city og temperature .
| id | by | temperatur |
|---|---|---|
| 1 | Houston | 23 |
| 2 | Atlanta | 20 |
| 3 | Boston | 15 |
| 4 | Cleveland | 15 |
| 5 | Dallas | 34 |
| 6 | Austin | 28 |
Sådan finder du byer med den laveste temperatur.
Løsning:
SELECT id, city, temperature FROM weather WHERE temperature = (SELECT MIN(temperature) FROM weather);
Her er resultatet:
| id | by | temperatur |
|---|---|---|
| 3 | Boston | 15 |
| 4 | Cleveland | 15 |
Diskussion:
For at finde minimumsværdien af en kolonne, brug MIN() aggregeret funktion; det tager navnet på kolonnen eller udtrykket for at finde minimumsværdien. I vores eksempel returnerer underforespørgslen minimumværdien i temperature kolonne (underforespørgsel:SELECT MIN(temperature) FROM weather ). Hovedforespørgslen viser id, by og temperatur. For kun at vise rækker med minimale værdier i kolonnen, skal du bruge WHERE med en underforespørgsel (f.eks. SELECT MIN(temperature) FROM weather ). I WHERE-sætningen skal du placere kolonnenavnet med den relative værdi, der skal sammenlignes med den værdi, der returneres af aggregatfunktionen i underforespørgslen (WHERE temperature = (SELECT MIN(temperature) FROM weather) ).