MySQL Group by Clause and Count Fonction

MySQL Group by Clause and Count Fonction
Les données peuvent être récupérées à partir des tables de base de données MySQL à l'aide de la requête de sélection de différentes manières. Généralement, la clause Group By est utilisée avec la requête sélectionnée pour récupérer l'ensemble des records en regroupant une ou plusieurs valeurs de colonne. De nombreuses fonctions agrégées de MySQL sont également utilisées avec la clause Group By pour lire les données du tableau, telles que Count (), Max (), Min (), Avg (), etc. Les utilisations du groupe par clause avec ou sans la fonction Count () ont été discutées dans ce tutoriel.

Groupe par clause:

Il est principalement utilisé pour obtenir le résumé des données du tableau basées sur la ou les colonnes de la table. La syntaxe de cette clause est fournie ci-dessous:

Syntaxe:
Sélectionnez des instructions…
Groupe par Column1 [, Column2,…];

La requête sélectionnée récupérera les données des tables en fonction des noms de colonne définis avec le groupe par clause.

COUNT () Fonction:

Cette fonction compte le nombre total d'enregistrements renvoyés en exécutant la requête sélectionnée. Il renvoie une valeur BigInt lorsqu'un ou plusieurs enregistrements sont retournés par la requête. Sinon, il revient 0. La syntaxe de la fonction Count () est fournie. Cette fonction peut être utilisée de trois manières différentes qui sont expliquées ci-dessous:

  1. COMPTER(*)
    Il est utilisé pour compter le nombre total de lignes renvoyées par la requête sélectionnée en comptant les valeurs nulles, non nulles et en double.
  2. Count (Expression)
    Il est utilisé pour compter le nombre total de lignes renvoyées par la requête sélectionnée sans compter les valeurs nulles.
  3. Count (expression distincte)
    Il est utilisé pour compter le nombre total de lignes renvoyées par la requête sélectionnée sans compter les valeurs nulles et les valeurs en double.

UTILISATION DE GROUPE BY CLAUSE ET COUNT () Fonction:

Vous devez créer une table de base de données avec des données dans une base de données MySQL pour vérifier le groupe par MySQL. Ouvrez le terminal et connectez-vous avec le serveur MySQL en exécutant la commande suivante:

$ sudo mysql -u racine

Exécutez la commande suivante pour créer une base de données nommée test_db:

Créer une base de données test_db;

Exécutez la commande suivante pour sélectionner la base de données:

Utilisez test_db;

Exécutez la requête suivante pour créer un tableau nommé Sales_persons avec quatre champs:

Créer une table Sales_persons (
id int Auto_increment Clé primaire,
nom varchar (30) pas null,
Email Varchar (50),
contact_no varchar (30));

Exécutez la requête suivante pour insérer les trois enregistrements dans le vendeur tableau:

Insérer dans 'Sales_Persons' ('Id', 'Name', 'Email', 'Contact_No') VALEURS (NULL, 'KAMAL HASAN', 'KAMAL @ GMAIL.com ',' 0191275634 '),
(Null, «Nila Hossain», «Nila @ gmail.com ',' 01855342357 '),
(Null, 'Abir Hossain', 'Abir @ Yahoo.com ',' 01634235698 ');

Exécutez la requête suivante pour créer un tableau nommé ventes avec quatre champs qui contient une clé étrangère qui créera la relation un à plusieurs Sales_persons table à la ventes tableau.

Créer des ventes de tables (
id int not null clé primaire,
Sales_date Date pas null,
Montant int,
sp_id int,
Contrainte FK_SP Foreign Key (SP_ID)
Références Sales_persons (ID)
Sur Delete Cascade sur Update Cascade);

Exécutez la requête suivante pour insérer quatre enregistrements dans le ventes tableau.

Insérer dans les valeurs «Sales» («Id», «Sales_date», «Montant», «SP_ID»)
('90', '2021-11-09', '800000', '1'),
('34', '2020-12-15', '5634555', '3'),
('67', '2021-12-23', '900000', '1'),
(«56», «2020-12-31», «6700000», «1»);

Exemple 1: utilisation de la clause de groupe par groupe avec une seule colonne

Exécutez la requête de sélection suivante pour découvrir l'ID et le nom des vendeurs qui ont des enregistrements dans le ventes tableau. L'identification du vendeur est utilisée pour le regroupement dans le groupe par clause. Selon le contenu du tableau des ventes, le tableau des ventes contient les enregistrements des deux vendeurs qui seront imprimés dans la production:

Sélectionnez SP_ID comme ID, Sales_Persons.Nom comme «vendeur»
De Sales_persons, ventes
Où Sales_Persons.id = ventes.sp_id
Groupe par sp_id;

Sortir:

La sortie suivante apparaîtra après avoir exécuté la requête précédente:

Exemple 2: Utilisation de la clause de groupe par plusieurs colonnes

L'utilisation de la clause Group By avec deux colonnes a été affichée dans la requête de sélection suivante. Les noms de vendeur qui ont une entrée dans le ventes table pour le Novembre le mois sera imprimé dans la sortie après l'exécution de la requête. Il n'y a qu'une seule entrée pour le Novembre mois dans le ventes tableau:

Sélectionnez SP_ID comme ID, Sales_Persons.Nom comme «vendeur»
De Sales_persons, ventes
Où Sales_Persons.id = ventes.SP_ID et MONDENAME (Sales_Date) = 'novembre'
Groupe par SP_ID, Name (Sales_Date);

Sortir:

La sortie suivante apparaîtra après avoir exécuté la requête précédente:

Exemple 3: Utilisation de la clause de groupe par groupe avec la fonction Count (*)

Les utilisations de la fonction (*) avec la clause du groupe par la clause ont été montrées dans la requête suivante. Le nombre total de ventes sera compté de chaque vendeur sera imprimé après l'exécution de la requête:

Sélectionnez Sales_persons.Nom en tant que «vendeur», comte (*)
De Sales_persons, ventes
Où Sales_Persons.id = ventes.sp_id
Groupe par sp_id;

Sortir:

Selon les données du ventes Tableau, la sortie suivante apparaîtra après avoir exécuté la requête pré-vive:

Exemple 4: Utilisation de la clause de groupe par groupe avec la fonction Count (Expression)

Les utilisations de la fonction Count (Expression) avec le groupe par clause ont été montrées dans la requête suivante. Le nombre total de ventes en fonction du nom du mois sera compté après la requête en exe:

Sélectionnez le nom de mois (ventes.Sales_Date) en tant que «mois», compte (mois (ventes.Sales_Date)) comme «nombre de ventes»
Des ventes
Groupe par mois (ventes.Sales_Date);

Sortir:

Selon les données du ventes Tableau, la sortie suivante apparaîtra après avoir exécuté la requête pré-vive:

Exemple 5: Utilisation du groupe par clause avec le nombre (Expres-Sion distinct)

La fonction de nombre (expression) avec la clause Group By a été utilisée dans le Que-Sormit suivant pour compter le nombre total de ventes en fonction du nom du mois et de l'ID de vendeur:

Sélectionnez SP_ID comme «ID de la personne du vendeur», Name Monthname (Sales_Date) comme mois, Count (SP_ID) comme «Ventes totales»
Des ventes
Group by Monthname (Sales_Date), SP_ID;

Sortir:

Selon les données du ventes Tableau, la sortie suivante apparaîtra après avoir exécuté la requête pré-vive:

Le nombre (expression distincte) est utilisé dans la requête suivante pour déterminer les ventes uniques en fonction du nom du mois et de l'ID de la personne de vente:

Sélectionnez SP_ID comme «ID de la personne du vendeur», Name (Sales_Date) comme mois, compter (distinct SP_ID) comme «ventes uniques trouvées»
Des ventes
Group by Monthname (Sales_Date), SP_ID;

Sortir:

Selon les données du ventes Tableau, la sortie suivante apparaîtra après avoir exécuté la requête pré-vive:

Conclusion:

Les utilisations simples de la clause Group By et la clause Group By avec la fonction Count () illustrée dans ce tutoriel utilisent plusieurs requêtes de sélection. Le but de l'utilisation de la clause Group By sera clair après avoir lu ce tutoriel. Nous espérons que vous avez trouvé cet article utile. Découvrez d'autres articles sur les conseils pour plus de conseils et de tutoriels.