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) ).