Database
 sql >> Base de données >  >> RDS >> Database

Quelle est l'utilisation de l'instruction SQL GROUP BY ?

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 :

  1. Instruction GROUP BY
  2. Syntaxe
  3. 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

[email protected]

9955669999

50000

Bombay

2

Anay

[email protected]

9875679861

55 000

Pune

3

Rahul

[email protected]

9876543212

35 000

Delhi

4

Sonia

[email protected]

9876543234

35 000

Delhi

5

Akash

[email protected]

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.