Lorsqu'une grande quantité de données est présente, nous voyons souvent une possibilité de manipuler les données en fonction de nos besoins. La clause GROUP BY est l'une de ces instructions dans SQL, utilisée pour regrouper les données en fonction de quelques colonnes ou de conditions. Dans cet article sur l'instruction SQL GROUP BY, je vais discuter de quelques façons d'utiliser les instructions GROUP BY dans l'ordre suivant :
- Instruction GROUP BY
- Syntaxe
- Exemples :
- Utiliser GROUP BY sur une seule colonne
- GROUP BY sur plusieurs colonnes
- Utiliser GROUP BY avec ORDER BY
- GROUP BY avec la clause HAVING
- Utiliser GROUP BY avec JOINS
Avant de passer aux exemples d'utilisation de la clause GROUP BY, comprenons ce qu'est GROUP BY en SQL et sa syntaxe.
Instruction SQL GROUP BY
Cette instruction est utilisée pour regrouper les enregistrements ayant les mêmes valeurs. L'instruction GROUP BY est souvent utilisée avec les fonctions d'agrégation pour regrouper les résultats par une ou plusieurs colonnes. En dehors de cela, la clause GROUP BY est également utilisée avec la clause HAVING et JOINS pour regrouper le jeu de résultats en fonction de conditions.
Syntaxe SQL GROUP BY
SELECT Column1, Column2,..., ColumnN FROM TableName WHERE Condition GROUP BY ColumnName(s) ORDER BY ColumnName(s);
Ici, vous pouvez ajouter les fonctions d'agrégation avant les noms de colonne, ainsi qu'une clause HAVING à la fin de l'instruction pour mentionner une condition. Ensuite, dans cet article sur SQL GROUP BY, voyons comment implémenter cette instruction.
Exemples :
Pour votre meilleure compréhension, j'ai divisé les exemples dans les sections suivantes :
- Utiliser GROUP BY sur une seule colonne
- GROUP BY sur plusieurs colonnes
- Utiliser GROUP BY avec ORDER BY
- GROUP BY avec la clause HAVING
- Utiliser GROUP BY avec JOINS
Je vais considérer le tableau suivant pour vous expliquer les exemples :
EmpID | EmpName | EmpEmail | Numéro de téléphone | Salaire | Ville |
1 | Nidhi | 9955669999 | 50000 | Bombay | |
2 | Anay | 9875679861 | 55 000 | Pune | |
3 | Rahul | 9876543212 | 35 000 | Delhi | |
4 | Sonia | 9876543234 | 35 000 | Delhi | |
5 | Akash | 9866865686 | 25 000 | Bombay |
Jetons un coup d'œil à chacun d'eux.
Utiliser SQL GROUP BY sur une seule colonne
Exemple :
Ecrire une requête pour récupérer le nombre d'employés dans chaque ville.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City;
Sortie :
Vous verrez la sortie suivante :
Count(EmpID) | Ville |
2 | Delhi |
2 | Bombay |
1 | Pune |
Utiliser SQL GROUP BY sur plusieurs colonnes
Exemple :
Ecrire une requête pour récupérer le nombre d'employés ayant des salaires différents dans chaque ville.
SELECT City, Salary, Count(*) FROM Employees GROUP BY City, Salary;
Sortie :
Le tableau contiendra les données suivantes :
Ville | Salaire | Compte(*) |
Delhi | 35000 | 2 |
Bombay | 25 000 | 1 |
Bombay | 50000 | 1 |
Pune | 55 000 | 1 |
Utiliser SQL GROUP BY avec ORDER BY
Lorsque nous utilisons l'instruction SQL GROUP BY avec la clause ORDER BY, les valeurs sont triées par ordre croissant ou décroissant.
Exemple :
Écrivez une requête pour récupérer le nombre d'employés dans chaque ville, triés par ordre décroissant.
SELECT COUNT(EmpID), City FROM Employees GROUP BY City ORDER BY COUNT(EmpID) DESC;
Sortie :
Le tableau contiendra les données suivantes :
Count(EmpID) | Ville |
2 | Delhi |
2 | Bombay |
1 | Pune |
Utiliser SQL GROUP BY avec la clause HAVING
L'instruction SQL GROUP BY est utilisée avec la clause « HAVING » pour mentionner les conditions sur les groupes. De plus, comme nous ne pouvons pas utiliser les fonctions d'agrégation avec la clause WHERE, nous devons utiliser la clause 'HAVING' pour utiliser les fonctions d'agrégation avec GROUP BY.
Exemple :
Ecrire une requête pour récupérer le nombre d'employés dans chaque ville, ayant un salaire> 15000
SELECT COUNT(EmpID), City FROM Employees GROUP BY City HAVING SALARY > 15000;
Sortie :
Étant donné que tous les enregistrements de la table Employee ont un salaire> 15 000, nous verrons le tableau suivant en sortie :
Count(EmpID) | Ville |
2 | Delhi |
2 | Bombay |
1 | Pune |
Utiliser GROUP BY avec JOINS
JOINS sont des instructions SQL utilisées pour combiner des lignes de deux tables ou plus, en fonction d'une colonne liée entre ces tables. Nous pouvons utiliser l'instruction SQL GROUP BY pour regrouper le jeu de résultats en fonction d'une colonne/colonnes. Considérez les tableaux ci-dessous pour exécuter les instructions JOIN avec la clause SQL GROUP BY.
Tableau des projets :
ID de projet | EmpID | ID client | Date du projet |
2345 | 1 | 4 | 26-01-2019 |
9876 | 2 | 5 | 28-02-2019 |
3456 | 3 | 6 | 12-03-2019 |
Tableau des clients :
ID client | Nom du client |
4 | Sanjana |
5 | Rohan |
6 | Arun |
Exemple
Rédigez une requête pour lister le nombre de projets demandés par chaque client :
SELECT Clients.ClientName, COUNT(Projects.ProjectID) AS RequestedProjects FROM Projects LEFT JOIN Clients ON Projects.ProjectID = Clients.ProjectID GROUP BY ClientName;
Sortie :
Le tableau contiendra les données suivantes :
Nom du client | Projets demandés |
Arun | 1 |
Rohan | 1 |
Sanjana | 1 |
Avec cela, nous arrivons à la fin de l'article SQL GROUP BY. Regardez ceci Formation de certification MySQL DBA par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau deplus de 250 000 apprenants satisfaits répartis dans le monde entier. Ce cours vous forme aux concepts de base et aux outils et techniques avancés pour gérer les données et administrer la base de données MySQL. Il comprend un apprentissage pratique sur des concepts tels que MySQL Workbench, MySQL Server, la modélisation de données, le connecteur MySQL, la conception de bases de données, la ligne de commande MySQL, les fonctions MySQL, etc. À la fin de la formation, vous serez en mesure de créer et d'administrer votre propre base de données MySQL et gérer les données.
Vous avez une question pour nous ? Veuillez le mentionner dans la section des commentaires de cet article "SQL GROUP BY" et nous vous répondrons dans les plus brefs délais.