L'utilisation de group by dans MySQL consiste à coopérer avec la fonction d'agrégation et à utiliser les informations de regroupement pour effectuer des statistiques, telles que "sélectionner le nom, la somme (id) du groupe de test par nom, numéro".
Recommandé : "tutoriel vidéo mysql》
Regardez d'abord le tableau 1 ci-dessous. Le nom de la table est test :
Exécutez l'instruction SQL suivante :
SELECT name FROM test GROUP BY name
Vous devriez facilement connaître les résultats de l'opération. Oui, c'est le tableau 2 ci-dessous :
Mais afin de mieux comprendre l'application du "regrouper par" plusieurs colonnes" et de la "fonction d'agrégation", je suggère qu'en cours de réflexion , utilisez la table Dans le processus de 1 à la table 2, ajoutez une table intermédiaire fictive : Table virtuelle 3 Parlons de la façon de penser à l'exécution de l'instruction SQL ci-dessus :
. 1.FROM test : Cette phrase Après exécution, le résultat doit être le même que le tableau 1, qui est la table d'origine
2.FROM test Group BY name : Après avoir exécuté cette phrase, nous imaginons cette table virtuelle. 3 est généré, comme le montre la figure ci-dessous, le processus de génération est le suivant : regroupez par nom, puis recherchez la colonne de nom et fusionnez les lignes avec la même valeur de nom en une seule ligne, par exemple. est aa, alors les deux lignes de et sont fusionnées en 1 ligne, toutes les valeurs d'identification et les valeurs numériques sont écrites dans une seule cellule, comme le montre la figure. ci-dessous
3. Ensuite, exécutez l'instruction Select pour la table virtuelle 3 :
(1) Si select * est exécuté, le résultat renvoyé doit être la table virtuelle 3. Cependant, certains les cellules de id et number contiennent plusieurs valeurs, donc id et number renverront les valeurs dans leurs cellules respectives. Triez la première valeur. La colonne id renverra 1,3,5
(2) Regardons. dans la colonne de nom. Il n'y a qu'une seule donnée dans chaque cellule, donc si nous sélectionnons le nom, il n'y aura pas de problème. Chaque cellule de la colonne de nom n'a qu'une seule valeur, car nous utilisons la colonne de nom pour regrouper
.(3) Alors, que devons-nous faire si les cellules de id et number ont plusieurs données ? La réponse est d'utiliser des fonctions d'agrégation pour saisir plusieurs données et en sortir une seule. sum(number), et l'entrée de chaque fonction d'agrégation est chaque cellule multi-données. >
(4) Par exemple, si nous exécutons select name,sum(number) from test group by name, alors la somme sera effectuée. sur chaque cellule de la colonne numérique de la table virtuelle 3, par exemple, sur la ligne portant le nom aa La colonne numérique effectue l'opération de somme, c'est-à-dire 2+3, et renvoie 5. Le résultat final de l'exécution est le suivant :
5) Comment comprendre le groupe par plusieurs champs : comme le groupe par nom, numéro, nous pouvons traiter le nom et le numéro comme un champ entier et les regrouper dans leur ensemble, comme le montre la figure ci-dessous :
6) Ensuite, vous pouvez opérer avec les fonctions de sélection et d'agrégation. Par exemple, si vous exécutez select name,sum(id) from test group by name,number, le résultat est le suivant :
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!