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