Maison  >  Article  >  base de données  >  Quelle est l'utilisation du groupe par dans MySQL

Quelle est l'utilisation du groupe par dans MySQL

藏色散人
藏色散人original
2020-10-27 10:43:226190parcourir

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".

Quelle est l'utilisation du groupe par dans MySQL

Recommandé : "tutoriel vidéo mysql

Regardez d'abord le tableau 1 ci-dessous. Le nom de la table est test :
Quelle est lutilisation du groupe par dans MySQL
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 :
Quelle est lutilisation du groupe par dans MySQL
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
Quelle est lutilisation du groupe par dans MySQL
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 :


Quelle est lutilisation du groupe par dans MySQL 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 :

Quelle est lutilisation du groupe par dans MySQL 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 :

Quelle est lutilisation du groupe par dans MySQL

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn