Einführung in die GROUP BY-Klausel in SQL

Für die Fälle, in denen wir die Zeilen mit dem gleichen Wert gruppieren müssen, kommt die Group By-Klausel ins Bild. Die GROUP BY-Klausel ist ein Befehl in SQL, der diesen Vorgang ausführt.

Der wichtige Punkt, an den Sie sich erinnern sollten, ist, dass die GROUP BY-Klausel in der SELECT-Anweisung in der Abfrage verwendet wird, nachdem die WHERE-Klausel verwendet wurde.

Syntax

Die Syntax für die Group By-Klausel lautet:

SELECT column_name1, column_name2, …
FROM table_name
WHERE conditions
GROUP By column_name1, column_name2, …
ORDER By column_name1, column_name2, …;

Erklärung der Syntax

  1. SELECT-Anweisung - SQL-Befehlsabfrage
  2. Tabellenname - Der Name der Datenbanktabelle, auf die verwiesen wird
  3. bedingungen - beziehen sich auf die zu prüfenden bedingungen
  4. GROUP BY - Klausel zum Gruppieren derselben Zeilen
  5. ORDER BY - Wird immer nach der Group By-Klausel verwendet, um die Zeilen in aufsteigender oder absteigender Reihenfolge anzuordnen. Dies ist eine optionale Bedingung.

Wie funktioniert die GROUP BY-Klausel in SQL?

Um die Funktionsweise der Group By-Klausel zu verstehen, nehmen wir ein Beispiel. Stellen Sie sich eine Tabelle mit dem Namen EMPLOYEE vor, die die grundlegenden Details des Mitarbeiters wie Name, Alter, Telefonnummer, Geburtsdatum, Geschlecht, Adresse, E-Mail-ID usw. enthält.

Mitarbeitertabelle

NameAlterTelefonGeschlechtEmail
John23123Männlich
Kann22456Weiblich
Ana45644Weiblich
Töpfe573456Weiblich
Res45456Weiblich
Bräunen782456Männlich
Ran345899Männlich
Wan557789Weiblich
Tung325689Männlich
Chung214678Männlich

Angenommen, der MITARBEITER hat ungefähr 10 Einträge.

Lassen Sie uns zuerst die verschiedenen Werte von „Geschlecht“ aus dieser Tabelle entnehmen. Die Abfrage, die uns hilft, unser Ziel zu erreichen, wäre:

SELECT gender FROM EMPLOYEE;

Dies gibt uns die folgenden Werte-

Geschlecht
Männlich
Weiblich
Weiblich
Weiblich
Weiblich
Männlich
Männlich
Weiblich
Männlich
Männlich

Das Problem ist hier die Redundanz der Werte, dh wie wir sehen können, gibt es nur zwei eindeutige Werte von Geschlechtern in der Tabelle, aber die Ausgabe gibt uns nicht nur die eindeutigen Werte, sondern alle Werte, selbst wenn sie sich wiederholen.

Um also nur die eindeutigen Werte aus der Tabelle zu erhalten, verwenden wir die folgende Abfrage:

SELECT gender FROM EMPLOYEE GROUP BY gender;

Das Ergebnis, das wir nach dem Ausführen dieser Abfrage erhalten, ist:

Geschlecht
Männlich
Weiblich

Die Gruppierung nach gruppiert dieselben Werte in den Zeilen und gibt nur einen einzelnen Eintrag oder eine einzelne Zeile für sie zurück, wie dies bei den Zeilen "Männlich" und "Weiblich" in der Tabelle der Fall war. Dies führte zu nur zwei eindeutigen Werten, die in der Spalte "Geschlecht" vorhanden waren, z. Weiblich und männlich.

Nehmen wir nun ein weiteres Beispiel einer Tabelle, die die Details der Abteilung enthält, der jeder dieser Mitarbeiter zugeordnet ist. Wir nennen dies eine Employee_Department-Tabelle.

Mitarbeiterabteilungstabelle

NamehodAbteilung
Johnhod1Bedienung
Kannhod2Finanzen
Anahod1Bedienung
Töpfehod2Finanzen
Reshod3Technik
Bräunenhod5Unterstützung
Ranhod3Bedienung
Wanhod3Technik
Tunghod3Finanzen
Chunghod5HR

Lassen Sie uns nun die folgende Abfrage ausführen und nach dem Ergebnis suchen -

SELECT hod, department FROM Employee_Department GROUP BY hod, department;

Die Ausführung dieser Abfrage ruft das folgende Ergebnis ab:

hodAbteilung
hod1Bedienung
hod2Finanzen
hod3Technik
hod5Unterstützung
hod3Bedienung
hod3Finanzen
hod5HR

Die GROUP BY-Klausel wirkt sich sowohl auf das HOD als auch auf die Abteilung aus, um nach den eindeutigen Zeilen im oben genannten Szenario zu suchen. Es wird die Kombination von hod und department mit anderen Einträgen von hod und department verglichen, um die Eindeutigkeit zu ermitteln. Wenn der Hod derselbe ist, aber die Abteilung unterschiedlich ist, wird diese Zeile als eine eindeutige behandelt. Wenn das Hod und die Abteilung für mehr als eine Zeile identisch sind, wird der doppelte Eintrag nicht erstellt und nur eine Zeile wird angezeigt.

GROUP BY-Klauseloperationen

Wir können die Group By-Klausel mit mehreren Gruppierungs- und Aggregatfunktionen verwenden. Nehmen wir ein paar Beispiele anhand der beiden oben genannten Tabellen: EMPLOYEE und Employee_Department.

Beispiel 1

Ermittlung der Anzahl männlicher und weiblicher Mitarbeiter im Unternehmen.

SELECT gender, COUNT(`name`) FROM EMPLOYEE GROUP BY gender;

Die Ausführung dieser Abfrage ruft das folgende Ergebnis ab:

COUNT ('name')Geschlecht
5Männlich
5Weiblich

Beispiel # 2

Abrufen der Anzahl der Abteilungen im Unternehmen in absteigender Reihenfolge der Anzahl.

SELECT department, COUNT(`name`) FROM Employee_Department GROUP BY department ORDER BY COUNT(name) DESC;

Die Ausführung dieser Abfrage ruft das folgende Ergebnis ab:

COUNT ('name')Abteilung
3Bedienung
3Finanzen
2Technik
1Unterstützung
1HR

Beispiel # 3

Abrufen der Anzahl der verschiedenen Abteilungen in der Firma in absteigender Reihenfolge der Anzahl.

SELECT hod, department, COUNT(`name`) FROM Employee_Department GROUP BY hod, department ORDER BY COUNT(name) DESC;

Die Ausführung dieser Abfrage ruft das folgende Ergebnis ab:

COUNT ('name')hodAbteilung
2hod1Bedienung
2hod2Finanzen
2hod3Technik
1hod5Unterstützung
1hod3Bedienung
1hod3Finanzen
1hod5HR

Die HAVING-Klausel in SQL

Die Verwendung der HAVING-Klausel mit der Group By-Klausel beschränkt das Ergebnis der Abfrage auf die Zeilen mit dem in der Having-Klausel angegebenen Wert.

Wenn Sie dies anhand eines Beispiels verstehen, wird es einfacher -

Beispiel # 4

SELECT * FROM EMPLOYEE GROUP BY gender HAVING gender = “Female”;

Die Ausführung dieser Abfrage ruft das folgende Ergebnis ab:

NameAlterTelefonGeschlechtEmail
Kann22456Weiblich
Ana45644Weiblich
Töpfe573456Weiblich
Res45456Weiblich
Wan557789Weiblich

Beispiel # 5

SELECT * FROM Employee_Department GROUP BY department HAVING department = “Finance”;

Die Ausführung dieser Abfrage ruft das folgende Ergebnis ab:

NamehodAbteilung
Kannhod2Finanzen
Töpfehod2Finanzen
Tunghod3Finanzen

Fazit

Mit der GROUP BY-Klausel und der SELECT-Anweisung können wir Zeilen mit denselben Werten zusammen mit der Verwendung von Aggregatfunktionen, Konstanten und Ausdrücken gruppieren.

Empfohlene Artikel

Dies ist eine Anleitung zur GROUP BY-Klausel in SQL. Hier wird die Funktionsweise der GROUP BY-Klausel in SQL anhand von Beispielen und Employee-Tabellen erläutert. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. SQL-Einfügeabfrage
  2. SQL-Ansichten
  3. Datenbank in SQL
  4. Transaktionen in SQL