Problème :
Vous voulez trouver des lignes qui stockent la plus petite valeur numérique dans une colonne.
Exemple :
Notre base de données a une table nommée weather
avec des données dans les colonnes suivantes :id
, city
, et temperature
.
identifiant | ville | température |
---|---|---|
1 | Houston | 23 |
2 | Atlanta | 20 |
3 | Boston | 15 |
4 | Cleveland | 15 |
5 | Dallas | 34 |
6 | Austin | 28 |
Voici comment trouver les villes avec la température la plus basse.
Solution :
SELECT id, city, temperature FROM weather WHERE temperature = (SELECT MIN(temperature) FROM weather);
Voici le résultat :
identifiant | ville | température |
---|---|---|
3 | Boston | 15 |
4 | Cleveland | 15 |
Discussion :
Pour trouver la valeur minimale d'une colonne, utilisez le MIN()
fonction d'agrégation ; il prend le nom de la colonne ou de l'expression pour trouver la valeur minimale. Dans notre exemple, la sous-requête renvoie la valeur minimale dans la temperature
colonne (sous-requête :SELECT MIN(temperature) FROM weather
). La requête principale affiche l'identifiant, la ville et la température. Pour afficher uniquement les lignes avec des valeurs minimales dans la colonne, utilisez WHERE avec une sous-requête (par exemple, SELECT MIN(temperature) FROM weather
). Dans la clause WHERE, placez le nom de la colonne avec la valeur relative à comparer à la valeur renvoyée par la fonction d'agrégation dans la sous-requête (WHERE temperature = (SELECT MIN(temperature) FROM weather)
).