Probleem:
U wilt rijen zoeken die de kleinste numerieke waarde in een kolom bevatten.
Voorbeeld:
Onze database heeft een tabel met de naam weather
met gegevens in de volgende kolommen:id
, city
, en temperature
.
id | stad | temperatuur |
---|---|---|
1 | Houston | 23 |
2 | Atlanta | 20 |
3 | Boston | 15 |
4 | Cleveland | 15 |
5 | Dallas | 34 |
6 | Austin | 28 |
Zo vind je steden met de laagste temperatuur.
Oplossing:
SELECT id, city, temperature FROM weather WHERE temperature = (SELECT MIN(temperature) FROM weather);
Dit is het resultaat:
id | stad | temperatuur |
---|---|---|
3 | Boston | 15 |
4 | Cleveland | 15 |
Discussie:
Om de minimumwaarde van een kolom te vinden, gebruikt u de MIN()
geaggregeerde functie; de naam van de kolom of expressie is nodig om de minimumwaarde te vinden. In ons voorbeeld retourneert de subquery de minimumwaarde in de temperature
kolom (subquery:SELECT MIN(temperature) FROM weather
). De hoofdquery geeft ID, stad en temperatuur weer. Om alleen rijen met minimale waarden in de kolom weer te geven, gebruikt u WHERE met een subquery (bijv. SELECT MIN(temperature) FROM weather
). Plaats in de WHERE-component de kolomnaam met de relatieve waarde die moet worden vergeleken met de waarde die wordt geretourneerd door de aggregatiefunctie in de subquery (WHERE temperature = (SELECT MIN(temperature) FROM weather)
).