L'instruction GROUP BY dans SQL est utilisé pour organiser des données identiques en groupes à l’aide de certaines fonctions. c'est-à-dire que si une colonne particulière a les mêmes valeurs dans différentes lignes, elle organisera ces lignes dans un groupe.
Caractéristiques
- La clause GROUP BY est utilisée avec l'instruction SELECT.
- Dans la requête, la clause GROUP BY est placée après le OÙ clause.
- Dans la requête, la clause GROUP BY est placée avant le COMMANDE Clause BY si utilisée.
- Dans la requête, la clause Group BY est placée avant la clause Have.
- Placer la condition dans la clause have .
Syntaxe :
SELECT colonne1, nom_fonction (colonne2)
FROM nom_table
OÙ état
Kat Timpf est-elle avocateGROUPE PAR colonne1, colonne2
ORDER BY colonne1, colonne2 ;
Explication:
- nom_fonction : Nom de la fonction utilisée par exemple, SUM() , AVG().
- nom de la table : Nom de la table.
- condition : État: Utilisé.
Supposons que nous ayons deux tables. La table d'exemple pour les employés et les étudiants est la suivante. Après avoir ajouté deux tables, nous effectuerons quelques opérations spécifiques pour en savoir plus sur GROUP BY.
Tableau des employés :
CREATE TABLE emp ( emp_no INT PRIMARY KEY, name VARCHAR(50), sal DECIMAL(10,2), age INT );>
Insérez des données aléatoires dans un tableau, puis nous effectuerons certaines opérations dans GROUP BY.
Shreya Ghoshal
Requête:
INSERT INTO emp (emp_no, name, sal, age) VALUES (1, 'Aarav', 50000.00, 25), (2, 'Aditi', 60000.50, 30), (3, 'Amit', 75000.75, 35), (4, 'Anjali', 45000.25, 28), (5, 'Chetan', 80000.00, 32), (6, 'Divya', 65000.00, 27), (7, 'Gaurav', 55000.50, 29), (8, 'Isha', 72000.75, 31), (9, 'Kavita', 48000.25, 26), (10, 'Mohan', 83000.00, 33);>
Sortir:
Tableau des étudiants :
Requête:
dans l'expression régulière Java
CREATE TABLE student ( name VARCHAR(50), year INT, subject VARCHAR(50) ); INSERT INTO student (name, year, subject) VALUES ('Alice', 1, 'Mathematics'), ('Bob', 2, 'English'), ('Charlie', 3, 'Science'), ('David', 1, 'History'), ('Emily', 2, 'Art'), ('Frank', 3, 'Computer Science');> Sortir:
Regrouper par une seule colonne
Regrouper par colonne unique signifie placer toutes les lignes avec la même valeur de cette colonne particulière uniquement dans un groupe. Considérez la requête comme indiqué ci-dessous :
Requête:
SELECT NAME, SUM(SALARY) FROM emp GROUP BY NAME;>
La requête ci-dessus produira le résultat ci-dessous :
Comme vous pouvez le voir dans le résultat ci-dessus, les lignes avec des NOMS en double sont regroupées sous le même NOM et leur SALAIRE correspondant est la somme du SALAIRE des lignes en double. La fonction SUM() de SQL est utilisée ici pour calculer la somme.
Regrouper par plusieurs colonnes
Regrouper sur plusieurs colonnes signifie, par exemple, GROUPE PAR colonne1, colonne2 . Cela signifie placer toutes les lignes avec les mêmes valeurs de colonnes colonne 1 et colonne 2 dans un groupe. Considérez la requête ci-dessous :
Requête:
SELECT SUBJECT, YEAR, Count(*) FROM Student GROUP BY SUBJECT, YEAR;>
Sortir:
Sortir : Comme vous pouvez le voir dans le résultat ci-dessus, les étudiants ayant à la fois le même SUJET et la même ANNÉE sont placés dans le même groupe. Et ceux dont le seul SUJET est le même mais pas l'ANNÉE appartiennent à des groupes différents. Nous avons donc ici regroupé le tableau selon deux colonnes ou plusieurs colonnes.
Clause HAVING dans la clause GROUP BY
Nous savons que la clause WHERE est utilisée pour placer des conditions sur des colonnes, mais que se passe-t-il si nous voulons placer des conditions sur des groupes ? C'est là que la clause HAVING entre en jeu. Nous pouvons utiliser la clause HAVING pour placer des conditions afin de décider quel groupe fera partie de l'ensemble de résultats final. De plus, nous ne pouvons pas utiliser de fonctions d'agrégation comme SUM(), COUNT(), etc. avec la clause WHERE. Nous devons donc utiliser la clause HAVING si nous voulons utiliser l'une de ces fonctions dans les conditions.
Syntaxe :
SELECT colonne1, nom_fonction (colonne2)
garniture de chaîne JavaFROM nom_table
OÙ état
GROUPE PAR colonne1, colonne2
AYANT un état
ORDER BY colonne1, colonne2 ;
prime pas de code en java
Explication:
- nom_fonction : Nom de la fonction utilisée par exemple, SUM() , AVG().
- nom de la table : Nom de la table.
- condition : État: Utilisé.
Exemple :
SELECT NAME, SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>3000 ;>
Sortir :
Comme vous pouvez le voir dans le résultat ci-dessus, un seul groupe sur les trois groupes apparaît dans le jeu de résultats car c'est le seul groupe où la somme de SALARY est supérieure à 3 000. Nous avons donc utilisé ici la clause HAVING pour placer cette condition comme condition. la condition doit être placée sur des groupes et non sur des colonnes.