logo

SQL GROUP BY

Die SQL GROUP BY-Klausel wird verwendet, um identische Daten basierend auf einer oder mehreren Spalten in Gruppen anzuordnen. Es wird häufig mit Aggregatfunktionen wie COUNT() SUM() AVG() MAX() und MIN() verwendet, um Berechnungen für jede Datengruppe durchzuführen.

Früchte_Bild' title=

Beispiel: Zuerst werden wir es tun erstellen eine Demo-SQL-Datenbank und -Tabelle, für die wir den Befehl GROUP BY verwenden werden.

Mitarbeiter' loading='lazy' title=

Abfrage:



SELECT Department SUM(Salary) AS TotalSalary FROM Employees GROUP BY Department;

Ausgabe:

Iterieren Sie durch Map Java
Gruppieren nach Abfrage' loading='lazy' title=

Syntax:

SELECT column1 aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1 column2;
  • Aggregatfunktion: Funktion zur Aggregation, z.B. SUM() AVG() COUNT().
  • Tabellenname: Name der Tabelle, aus der Daten ausgewählt werden.
  • Zustand: Optionale Bedingung zum Filtern von Zeilen vor dem Gruppieren (wird mit WHERE verwendet).
  • Spalte1 Spalte2: Spalten, auf die die Gruppierung angewendet wird.

Beispiele für GROUP BY

Nehmen wir an, wir haben einen Student-Tisch. Wir werden einige Beispieldaten in diese Tabelle einfügen und dann Operationen mit GROUP BY durchführen, um zu verstehen, wie Zeilen basierend auf einer Spalte gruppiert und Daten aggregiert werden.

grp' loading='lazy' title=

Beispiel 1: Gruppieren nach einer einzelnen Spalte

Wenn wir nach einer einzelnen Spalte gruppieren, werden Zeilen mit demselben Wert in dieser Spalte kombiniert. Beispielsweise zeigt die Gruppierung nach Fächern, wie viele Studierende in jedem Fach eingeschrieben sind.

Abfrage:

SELECT subject COUNT(*) AS Student_Count FROM Student GROUP BY subject;

Ausgabe:

stdin c-Programmierung
grp-1' loading='lazy' title=

Erläuterung: Jedes Fach erscheint zweimal in der Tabelle, sodass die Anzahl für englische Mathematik und Naturwissenschaften 2 beträgt.

Beispiel 2: Gruppieren nach mehreren Spalten

Durch die Verwendung von GROUP BY mit mehreren Spalten werden Zeilen gruppiert, die in diesen Spalten dieselben Werte aufweisen. Wenn Sie beispielsweise nach Fach und Jahr gruppieren, werden Zeilen mit demselben Fach-Jahres-Paar kombiniert und wir können zählen, wie viele Schüler in jede Gruppe fallen.

Abfrage:

SELECT subject year COUNT(*) FROM Student GROUP BY subject year;

Ausgabe:

Studenten-Grp' loading='lazy' title=

Erläuterung: Studierende mit gleichem Fach und Jahrgang werden in Gruppen zusammengefasst. Da jedes Fach-Jahres-Paar zweimal vorkommt, beträgt die Zählung für jede Gruppe 2.

Java-Sortierzeichenfolgen

HAVING-Klausel in der GROUP BY-Klausel

Die HAVING-Klausel wird verwendet, um Ergebnisse nach der Gruppierung zu filtern, insbesondere wenn mit Aggregatfunktionen wie SUM() COUNT() oder AVG() gearbeitet wird. Im Gegensatz zu WHERE werden Bedingungen auf gruppierte Daten angewendet.

emp' loading='lazy' title=

Beispiel 1: Nach Gesamtgehalt filtern

In dieser Abfrage gruppieren wir Mitarbeiter nach Namen und zeigen nur diejenigen an, deren Gesamtgehalt mehr als 50.000 beträgt.

SELECT NAME SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>50000; 

Ausgabe

Alter-1' loading='lazy' title=

Erläuterung : Im Ergebnis erscheinen nur Mitarbeiter, deren Gesamtgehalt 50000 übersteigt.

Wumpus-Welt

Beispiel 2: Nach Durchschnittsgehalt filtern

In dieser Abfrage gruppieren wir Mitarbeiter nach Alter und zeigen nur die Altersgruppen an, in denen das Durchschnittsgehalt über 60.000 liegt.

SELECT age AVG(sal) AS Average_Salary FROM emp GROUP BY age HAVING AVG(sal) > 60000;

Ausgabe:

Ausgang-1' loading='lazy' title=

Erläuterung: Diese Abfrage gruppiert Mitarbeiter nach Alter und berechnet das Durchschnittsgehalt für jedes Alter. Es werden nur die Altersgruppen angezeigt, deren Durchschnittsgehalt über 60.000 liegt.

Quiz erstellen