Introduction à la clause GROUP BY dans SQL

Pour les cas où nous devons regrouper les lignes avec la même valeur, la clause Group By apparaît dans l'image. La clause GROUP BY est une commande en SQL qui effectuera cette opération.

Le point important à retenir ici est que la clause GROUP BY est utilisée dans l'instruction SELECT de la requête après l'utilisation de la clause WHERE.

Syntaxe

La syntaxe de la clause Group By est -

SELECT column_name1, column_name2, …
FROM table_name
WHERE conditions
GROUP By column_name1, column_name2, …
ORDER By column_name1, column_name2, …;

Explication de la syntaxe

  1. Instruction SELECT - requête de commande SQL
  2. table_name - le nom de la table de base de données référencée
  3. conditions - se référer aux conditions à vérifier
  4. GROUP BY - clause pour regrouper les mêmes lignes
  5. ORDER BY - toujours utilisé après la clause Group By pour organiser les lignes dans l'ordre croissant ou décroissant. Il s'agit d'une condition facultative.

Comment fonctionne la clause GROUP BY dans SQL?

Afin de comprendre le fonctionnement de la clause Group By, prenons l'exemple d'un exemple. Considérez un tableau avec le nom EMPLOYÉ qui contient les détails de base de l'employé tels que nom, âge, numéro de téléphone, ddb, sexe, adresse, identifiant de messagerie, etc.

Table des employés

Nomâgetéléphonele sexeemail
John23123Masculin
Mai22456Femme
Ana45644Femme
Pots573456Femme
Res45456Femme
bronzer782456Masculin
Ran345899Masculin
Blême557789Femme
Tung325689Masculin
Chung214678Masculin

Considérez que L'EMPLOYÉ a environ 10 entrées.

Tirons d'abord les différentes valeurs de «genre» de ce tableau. La requête qui nous aidera à atteindre notre objectif serait -

SELECT gender FROM EMPLOYEE;

Cela nous donnera les valeurs suivantes-

le sexe
Masculin
Femme
Femme
Femme
Femme
Masculin
Masculin
Femme
Masculin
Masculin

Le problème ici est la redondance des valeurs, c'est-à-dire que comme nous pouvons le voir, il n'y a que deux valeurs uniques de genres dans le tableau, mais la sortie ne nous donne pas seulement les valeurs uniques mais toutes les valeurs même si elles sont répétitives.

Ainsi, afin d'obtenir uniquement les valeurs uniques de la table, nous utiliserons la requête suivante -

SELECT gender FROM EMPLOYEE GROUP BY gender;

Le résultat que nous recevons après avoir exécuté cette requête sera -

le sexe
Masculin
Femme

Le regroupement par regroupera toutes les mêmes valeurs dans les lignes et ne renverra qu'une seule entrée ou une seule ligne pour elles, comme il l'a fait pour les lignes «Masculin» et «Femelle» dans le tableau. Il en est résulté seulement deux valeurs uniques qui étaient présentes dans la colonne «sexe» i, e. Femme et homme.

Prenons maintenant un autre exemple de tableau qui contient les détails du service auquel chacun de ces employés est associé. Nous appellerons cela une table Employee_Department.

Table du département des employés

Nomhottedépartement
Johnhod1Un service
Maihod2La finance
Anahod1Un service
Potshod2La finance
Reshod3Technologie
bronzerhod5Soutien
Ranhod3Un service
Blêmehod3Technologie
Tunghod3La finance
Chunghod5HEURE

Alors maintenant, exécutons la requête ci-dessous et recherchons le résultat -

SELECT hod, department FROM Employee_Department GROUP BY hod, department;

L'exécution de cette requête récupère le résultat suivant -

hottedépartement
hod1Un service
hod2La finance
hod3Technologie
hod5Soutien
hod3Un service
hod3La finance
hod5HEURE

La clause GROUP BY fonctionne à la fois sur le hod et le département pour rechercher les lignes uniques dans le scénario mentionné ci-dessus. Il vérifiera la combinaison du hod et du département par rapport aux autres entrées du hod et du département pour identifier son caractère unique. Si le hod est le même mais que le département est différent, alors cette ligne est traitée comme unique. Si le hod et le département sont les mêmes pour plusieurs lignes, l'entrée en double n'est pas créée et une seule ligne est affichée.

GROUP BY Opérations de clause

Nous pouvons utiliser la clause Group By avec plusieurs fonctions de regroupement et d'agrégation. Prenons quelques exemples en utilisant les deux tableaux mentionnés ci-dessus, c'est-à-dire EMPLOYEE et Employee_Department.

Exemple 1

Obtenir le nombre d'employés masculins et féminins dans l'entreprise.

SELECT gender, COUNT(`name`) FROM EMPLOYEE GROUP BY gender;

L'exécution de cette requête récupère le résultat suivant -

COUNT ('nom')le sexe
5Masculin
5Femme

Exemple # 2

Obtenir le nombre de départements dans l'entreprise par ordre décroissant du nombre.

SELECT department, COUNT(`name`) FROM Employee_Department GROUP BY department ORDER BY COUNT(name) DESC;

L'exécution de cette requête récupère le résultat suivant -

COUNT ('nom')département
3Un service
3La finance
2Technologie
1Soutien
1HEURE

Exemple # 3

Obtenir le nombre de différents départements sous le même hod dans l'entreprise dans l'ordre décroissant du nombre.

SELECT hod, department, COUNT(`name`) FROM Employee_Department GROUP BY hod, department ORDER BY COUNT(name) DESC;

L'exécution de cette requête récupère le résultat suivant -

COUNT ('nom')hottedépartement
2hod1Un service
2hod2La finance
2hod3Technologie
1hod5Soutien
1hod3Un service
1hod3La finance
1hod5HEURE

La clause HAVING en SQL

L'utilisation de la clause HAVING avec la clause Group By limitera le résultat de la requête aux lignes ayant la valeur mentionnée avec la clause having.

Comprendre cela avec un exemple, il sera plus facile -

Exemple # 4

SELECT * FROM EMPLOYEE GROUP BY gender HAVING gender = “Female”;

L'exécution de cette requête récupère le résultat suivant -

Nomâgetéléphonele sexeemail
Mai22456Femme
Ana45644Femme
Pots573456Femme
Res45456Femme
Blême557789Femme

Exemple # 5

SELECT * FROM Employee_Department GROUP BY department HAVING department = “Finance”;

L'exécution de cette requête récupère le résultat suivant -

Nomhottedépartement
Maihod2La finance
Potshod2La finance
Tunghod3La finance

Conclusion

En utilisant la clause GROUP BY avec l'instruction SELECT, nous pouvons regrouper des lignes avec les mêmes valeurs avec l'utilisation de fonctions d'agrégation, de constantes et d'expressions.

Articles recommandés

Ceci est un guide de la clause GROUP BY dans SQL. Nous discutons ici du fonctionnement de la clause GROUP BY en SQL à l'aide d'exemples et de tables Employee. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Requête d'insertion SQL
  2. Vues SQL
  3. Base de données en SQL
  4. Transactions en SQL