Problem:
Chcesz znaleźć wiersze, które przechowują najmniejszą wartość liczbową w kolumnie.
Przykład:
Nasza baza danych zawiera tabelę o nazwie weather
z danymi w następujących kolumnach:id
, city
i temperature
.
id | miasto | temperatura |
---|---|---|
1 | Huston | 23 |
2 | Atlanta | 20 |
3 | Boston | 15 |
4 | Cleveland | 15 |
5 | Dalle | 34 |
6 | Austin | 28 |
Oto jak znaleźć miasta o najniższej temperaturze.
Rozwiązanie:
SELECT id, city, temperature FROM weather WHERE temperature = (SELECT MIN(temperature) FROM weather);
Oto wynik:
id | miasto | temperatura |
---|---|---|
3 | Boston | 15 |
4 | Cleveland | 15 |
Dyskusja:
Aby znaleźć minimalną wartość kolumny, użyj MIN()
funkcja zagregowana; aby znaleźć minimalną wartość, pobiera nazwę kolumny lub wyrażenia. W naszym przykładzie podzapytanie zwraca minimalną wartość w temperature
kolumna (podzapytanie:SELECT MIN(temperature) FROM weather
). Główne zapytanie wyświetla identyfikator, miasto i temperaturę. Aby wyświetlić tylko wiersze z minimalnymi wartościami w kolumnie, użyj WHERE z podzapytaniem (np. SELECT MIN(temperature) FROM weather
). W klauzuli WHERE umieść nazwę kolumny z wartością względną do porównania z wartością zwracaną przez funkcję agregującą w podzapytaniu (WHERE temperature = (SELECT MIN(temperature) FROM weather)
).