Problém:
Chcete najít řádky, které ukládají nejmenší číselnou hodnotu ve sloupci.
Příklad:
Naše databáze obsahuje tabulku s názvem weather
s údaji v následujících sloupcích:id
, city
a temperature
.
id | město | teplota |
---|---|---|
1 | Houston | 23 |
2 | Atlanta | 20 |
3 | Boston | 15 |
4 | Cleveland | 15 |
5 | Dallas | 34 |
6 | Austin | 28 |
Zde je návod, jak najít města s nejnižší teplotou.
Řešení:
SELECT id, city, temperature FROM weather WHERE temperature = (SELECT MIN(temperature) FROM weather);
Zde je výsledek:
id | město | teplota |
---|---|---|
3 | Boston | 15 |
4 | Cleveland | 15 |
Diskuse:
Chcete-li zjistit minimální hodnotu sloupce, použijte MIN()
agregační funkce; k nalezení minimální hodnoty potřebuje název sloupce nebo výrazu. V našem příkladu vrací dílčí dotaz minimální hodnotu v temperature
sloupec (poddotaz:SELECT MIN(temperature) FROM weather
). Hlavní dotaz zobrazuje id, město a teplotu. Chcete-li zobrazit pouze řádky s minimálními hodnotami ve sloupci, použijte WHERE s dílčím dotazem (např. SELECT MIN(temperature) FROM weather
). Do klauzule WHERE umístěte název sloupce s relativní hodnotou, kterou chcete porovnat s hodnotou vrácenou agregační funkcí v dílčím dotazu (WHERE temperature = (SELECT MIN(temperature) FROM weather)
).