Maison >base de données >tutoriel mysql >Quelle est la déclaration de valeur maximale dans la requête MySQL ?
L'instruction de requête de valeur maximale MySQL est la suivante : regroupez d'abord le champ stuname ; puis utilisez la fonction MAX pour calculer la valeur maximale dans chaque groupe. Le code est [SELECT a.stuname,MAX(a. score) AS. ..].
[Recommandations d'apprentissage associées : tutoriel mysql(vidéo)]
L'instruction de requête de valeur maximale MySQL est :
1 Méthode 1
SELECT a.stuname,MAX(a.score) AS score FROM stuscore a GROUP BY a.`stuname` ;
Dans cette instruction, nous effectuons la requête sur le. champ stuname Regroupez les valeurs en groupes, puis utilisez la fonction MAX() pour calculer la valeur maximale dans chaque groupe.
2. Méthode 2 : Utiliser la connexion
SELECT a.stuname,a.score AS score FROM stuscore a JOIN stuscore b ON a.`stuname`=b.`stuname` GROUP BY a.`score` HAVING a.`score`=MAX(b.`score`);
Dans la deuxième instruction SQL, nous utilisons stuname comme condition de jugement pour connecter les deux tables. Si nous exécutons uniquement
SELECT a.stuname,a.score AS score FROM stuscore a JOIN
stuscore b ON a.stuname=b.stuname
nous obtiendrons l'ensemble de résultats suivant :
La raison pour laquelle nous obtenons cet ensemble de résultats est que lors de la connexion, Chaque enregistrement de la table de gauche sera mis en correspondance avec chaque enregistrement de la table de droite selon la condition de jointure ON a.stuname=b.stuname
", c'est pourquoi des enregistrements en double apparaissent. C'est un peu comme une "double boucle" dans un langage de programmation.
Ajoutez ensuite le regroupement et les conditions de regroupement GROUP BY a.score HAVING a.score=MAX(b.score)
pour obtenir la note maximale pour chaque élève
En fait, GROUP BY a.`score ` HAVING a.`score`=MAX(b.`score`)
cette condition de regroupement est celle que je ; J'étais un peu confus au début, c'est-à-dire que j'ai regroupé selon le champ de score, mais pourquoi la fonction MAX() ici peut calculer le score maximum de chaque élève. On sait que la première méthode est plus facile à comprendre. le nom de l'élève, puis utilisez la fonction MAX()
pour calculer la valeur maximale, mais la deuxième méthode consiste à regrouper le champ de score. Je pense que la raison ici est que les deux tableaux sont combinés. La condition de connexion a.stuname=b.stuname
a déjà regroupé ces enregistrements en fonction des noms des élèves, afin que MAX(b.score)
puisse calculer le score maximum de chaque élève
!Vous souhaitez en savoir plus sur la programmation. faites attention à la rubrique formation php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!