T-SQL - Clause GROUP BY

Le serveur SQL GROUP BY La clause est utilisée en collaboration avec l'instruction SELECT pour organiser des données identiques en groupes.

La clause GROUP BY suit la clause WHERE dans une instruction SELECT et précède la clause ORDER BY.

Syntaxe

Voici la syntaxe de base de la clause GROUP BY. La clause GROUP BY doit respecter les conditions de la clause WHERE et doit précéder la clause ORDER BY si elle est utilisée.

SELECT column1, column2 
FROM table_name 
WHERE [ conditions ] 
GROUP BY column1, column2 
ORDER BY column1, column2

Exemple

Considérez que la table CUSTOMERS contient les enregistrements suivants -

ID  NAME       AGE       ADDRESS          SALARY 
1   Ramesh     32        Ahmedabad        2000.00 
2   Khilan     25        Delhi            1500.00 
3   kaushik    23        Kota             2000.00 
4   Chaitali   25        Mumbai           6500.00 
5   Hardik     27        Bhopal           8500.00 
6   Komal      22        MP               4500.00 
7   Muffy      24        Indore           10000.00

Si vous souhaitez connaître le montant total du salaire de chaque client, voici la requête GROUP BY.

SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS 
   GROUP BY NAME;

La commande ci-dessus produira la sortie suivante.

NAME        sum of salary 
Chaitali    6500.00 
Hardik      8500.00 
kaushik     2000.00 
Khilan      1500.00 
Komal       4500.00 
Muffy       10000.00 
Ramesh      2000.00

Considérons maintenant la table CUSTOMERS suivante ayant les enregistrements suivants avec des noms en double.

ID  NAME       AGE       ADDRESS           SALARY 
1   Ramesh     32        Ahmedabad         2000.00 
2   Khilan     25        Delhi             1500.00 
3   kaushik    23        Kota              2000.00 
4   Chaitali   25        Mumbai            6500.00 
5   Hardik     27        Bhopal            8500.00 
6   Komal      22        MP                4500.00 
7   Muffy      24        Indore            10000.00

Si nous voulons connaître le montant total du salaire de chaque client, la requête suivante sera GROUP BY.

SELECT NAME, SUM(SALARY) as [sum of salary] FROM CUSTOMERS 
   GROUP BY NAME

La commande ci-dessus produira la sortie suivante.

NAME        sum of salary 
Hardik      8500.00 
kaushik     8500.00 
Komal       4500.00 
Muffy       10000.00 
Ramesh      3500.00