Database
 sql >> Base de données >  >> RDS >> Database

Comment trouver les valeurs maximales dans les lignes

Problème :

Vous voulez trouver quelles lignes stockent la plus grande valeur numérique dans une colonne donnée.

Exemple :

Notre base de données a une table nommée student avec des données dans les colonnes suivantes :id , first_name , last_name , et grade .

identifiant prénom nom_de_famille classe
1 Lisa Jackson 3
2 Gary Larry 5
3 Tom Michelin 2
4 Martin Aboyeur 2
5 Élie Noir 5
6 Marie Simpson 4

Trouvons les étudiants qui ont les meilleures notes.

Solution :

SELECT  id, first_name, last_name, grade
FROM student
WHERE grade = (SELECT MAX(grade) FROM student);

Voici le résultat :

identifiant prénom nom_de_famille classe
2 Gary Larry 5
5 Élie Noir 5

Discussion :

Pour trouver la valeur maximale d'une colonne, utilisez le MAX() fonction d'agrégation ; il faut un nom de colonne ou une expression pour trouver la valeur maximale. Dans notre exemple, la sous-requête renvoie le nombre le plus élevé dans la colonne note (sous-requête :SELECT MAX(grade) FROM student ). La requête principale affiche l'identifiant, le prénom et le nom et leur note. Pour afficher uniquement les lignes avec la valeur maximale parmi toutes les valeurs de la colonne (par exemple, SELECT MAX(grade) FROM student ), utilisez WHERE avec une sous-requête. Dans WHERE, mettez le nom de la colonne avec la valeur comparable à la valeur renvoyée par la fonction d'agrégation dans la sous-requête (dans notre exemple :WHERE grade = (SELECT MAX(grade) FROM student) ).