Maison >base de données >tutoriel mysql >Comment regrouper plusieurs champs à l'aide de Group By dans MySql

Comment regrouper plusieurs champs à l'aide de Group By dans MySql

黄舟
黄舟original
2018-05-25 15:31:147046parcourir

Cet article présente principalement la méthode d'implémentation de MySql Group By pour regrouper plusieurs champs. Les amis dans le besoin peuvent se référer aux

Recommandations du didacticiel vidéo MySQL associé : " Tutoriel MySQL <.>》

Dans les tâches de développement quotidiennes, nous utilisons souvent le regroupement GROUP BY de MYSQL pour obtenir des données statistiques basées sur les champs de groupe de la table de données. Par exemple, il existe un tableau de sélection des cours des étudiants avec la structure suivante :

Table: Subject_Selection
Subject  Semester  Attendee
---------------------------------
ITB001  1     John
ITB001  1     Bob
ITB001  1     Mickey
ITB001  2     Jenny
ITB001  2     James
MKB114  1     John
MKB114  1     Erica
Nous voulons compter le nombre d'étudiants inscrits à chaque cours. Appliquez le SQL suivant :

<.> pour obtenir les résultats suivants :
SELECT Subject, Count(*)
FROM Subject_Selection
GROUP BY Subject

Car il est enregistré dans le tableau que 5 étudiants ont choisi ITB001 et 2 étudiants ont choisi MKB114.
Subject  Count
------------------------------
ITB001   5
MKB114   2

La raison de ce résultat est :

GROUP BY X signifie mettre tous les enregistrements avec la même valeur de champ X dans un groupe.

Et GROUPE PAR X, Y ?

GROUP BY X, Y signifie placer tous les enregistrements avec la même valeur de champ X et la même valeur de champ Y dans un groupe.

Nous demanderons ensuite de compter combien de personnes choisissent chaque matière à chaque semestre, et utiliserons le SQL suivant :

Le SQL ci-dessus signifie effectuer les données sur la table Subject_Selection Grouping , placez les enregistrements avec les mêmes valeurs de champ Sujet et Semestre dans le même groupe, puis appliquez des fonctions d'agrégation (COUNT, SUM, AVG, etc.) aux données de chaque groupe.
SELECT Subject, Semester, Count(*)
FROM Subject_Selection
GROUP BY Subject, Semester

Le résultat obtenu est :

D'après les enregistrements du tableau, nous pouvons voir que le résultat du regroupement est correct 3 étudiants ont choisi ITB001 au premier semestre, et 2 étudiants Eux. ont choisi ITB001 au deuxième semestre,
Subject  Semester  Count
------------------------------
ITB001   1     3
ITB001   2     2
MKB114   1     2

et deux étudiants ont choisi MKB114 au premier semestre, et personne n'a choisi MKB114 au deuxième semestre.

Pour un autre exemple, il existe un tableau de commande, qui enregistre toutes les commandes payées

Tableau : Commande

Maintenant, nous voulons compter chaque utilisateur dans chaque catégorie Comment combien d'argent a été dépensé pour les marchandises au total ? Exécutez le SQL suivant
Product  Buyer    Spending
---------------------------------
PD001   Todd     12.00
PD001   Todd     12.00
PD001   Todd     12.00
PD001   Lily     12.00
PD001   Lily     12.00
PD002   Todd     20.00
PD002   Todd     20.00

et obtenez les résultats suivants :
SELECT Product,Buyer, SUM(Spending)
FROM `Order`
GROUP BY Product, Buyer

Product  Buyer   SUM
------------------------------
PD001   Todd   36.00
PD001   Lily   24.00
PD002   Todd   40.00

Résumé : Lorsque vous utilisez GROUP BY pour regrouper des données dans une table dans MYSQL,

GROUP BY X signifie placer tous les enregistrements avec la même valeur de champ X dans un groupe,

GROUP BY X, Y signifie mettre tous les enregistrements avec la même valeur de champ X et la même valeur de champ Y dans un groupe.

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