Problem:
Sie möchten Zeilen finden, die den kleinsten numerischen Wert in einer Spalte speichern.
Beispiel:
Unsere Datenbank hat eine Tabelle namens weather
mit Daten in den folgenden Spalten:id
, city
, und temperature
.
id | Stadt | Temperatur |
---|---|---|
1 | Houston | 23 |
2 | Atlanta | 20 |
3 | Boston | 15 |
4 | Cleveland | 15 |
5 | Dallas | 34 |
6 | Austin | 28 |
So finden Sie Städte mit der niedrigsten Temperatur.
Lösung:
SELECT id, city, temperature FROM weather WHERE temperature = (SELECT MIN(temperature) FROM weather);
Hier ist das Ergebnis:
id | Stadt | Temperatur |
---|---|---|
3 | Boston | 15 |
4 | Cleveland | 15 |
Diskussion:
Um den Mindestwert einer Spalte zu finden, verwenden Sie MIN()
Aggregatfunktion; es braucht den Namen der Spalte oder des Ausdrucks, um den Minimalwert zu finden. In unserem Beispiel gibt die Unterabfrage den Mindestwert in temperature
zurück Spalte (Unterabfrage:SELECT MIN(temperature) FROM weather
). Die Hauptabfrage zeigt ID, Stadt und Temperatur an. Um nur Zeilen mit minimalen Werten in der Spalte anzuzeigen, verwenden Sie WHERE mit einer Unterabfrage (z. B. SELECT MIN(temperature) FROM weather
). Platzieren Sie in der WHERE-Klausel den Spaltennamen mit dem relativen Wert, der mit dem Wert verglichen werden soll, der von der Aggregatfunktion in der Unterabfrage zurückgegeben wird (WHERE temperature = (SELECT MIN(temperature) FROM weather)
). ).