De MYSQL GROUP BY-clausule wordt gebruikt om gegevens uit meerdere records te verzamelen en het resultaat te groeperen op een of meer kolommen. Het wordt doorgaans gebruikt in een SELECT-instructie.
U kunt ook enkele aggregatiefuncties gebruiken, zoals COUNT, SUM, MIN, MAX, AVG etc. in de gegroepeerde kolom.
Syntaxis:
SELECT expression1, expression2, ... expression_n, aggregate_function (expression) FROM tables [WHERE conditions] GROUP BY expression1, expression2, ... expression_n;
Parameters
expressie1, expressie2, ... expressie_n: Het specificeert de expressies die niet zijn ingekapseld in een aggregatiefunctie en moeten worden opgenomen in de GROUP BY-clausule.
geaggregeerde_functie: Het specificeert een functie zoals SUM, COUNT, MIN, MAX of AVG etc. tabellen: Het specificeert de tabellen, van waaruit u de records wilt ophalen. Er moet ten minste één tabel worden vermeld in de FROM-clausule.
Java-indexvan
WHERE voorwaarden: Het is optioneel. Het specificeert de voorwaarden waaraan moet worden voldaan voordat de records kunnen worden geselecteerd.
(i) MySQL GROUP BY-clausule met COUNT-functie
Beschouw een tabel met de naam 'officieren', met de volgende records.
Laten we nu het herhaalde aantal steden in het kolomadres tellen.
Voer de volgende query uit:
SELECT address, COUNT(*) FROM officers GROUP BY address;
Uitgang:
(ii) MySQL GROUP BY-clausule met SUM-functie
Laten we een tabel 'werknemers' nemen, met de volgende gegevens.
Nu zal de volgende query GROEPEREN OP het voorbeeld met behulp van de SUM-functie en de werknaam en het totale aantal werkuren van elke werknemer retourneren.
Voer de volgende query uit:
SELECT emp_name, SUM(working_hours) AS 'Total working hours' FROM employees GROUP BY emp_name;
Uitgang:
(iii) MySQL GROUP BY-clausule met MIN-functie
In het volgende voorbeeld worden de minimale werkuren gespecificeerd van de werknemers uit de tabel 'werknemers'.
Voer de volgende query uit:
SELECT emp_name, MIN(working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;
Uitgang:
(iv) MySQL GROUP BY-clausule met MAX-functie
In het volgende voorbeeld zijn de maximale werktijden gespecificeerd van de werknemers uit de tabel 'werknemers'.
Voer de volgende query uit:
SELECT emp_name, MAX (working_hours) AS 'Minimum working hour' FROM employees GROUP BY emp_name;
Uitgang:
(v) MySQL GROUP BY-clausule met AVG-functie
In het volgende voorbeeld worden de gemiddelde arbeidsuren van de werknemers uit de tabel 'werknemers' gespecificeerd.Voer de volgende query uit:
SELECT emp_name, AVG(working_hours) AS 'Average working hour' FROM employees GROUP BY emp_name;
Uitgang: