Mit der GROUP BY-Syntax können die Abfrageergebnisse entsprechend den einzelnen Mitgliedern einer bestimmten Datenspalte gruppiert und gezählt und schließlich eine Gruppenzusammenfassungstabelle erstellt werden. Der Spaltenname in der Select-Klausel muss eine Gruppierungsspalte oder eine Spaltenfunktion sein, die für jede durch die Group-By-Klausel definierte Gruppe ein Ergebnis zurückgibt. Der Aufbau und die Daten einer Mitarbeiterinformationstabelle sind wie folgt: ID Name Abteilung Gehalt Bildungsstufe Einstellungsdatum 1 Zhang San Entwicklungsabteilung 2000 3 2009-10-11 2 Li Si Entwicklungsabteilung 2500 3 2009-10-01 3 Wang Wu Designabteilung 2600 5 2010-10-02 4 Wang Liu Designabteilung 2300 4 2010-10-03 5 Maqi Designabteilung 2100 4 2010-10-06 6 Zhao Ba Verkaufsabteilung 3000 5 2010-10-05 7 Qianjiu Verkaufsabteilung 3100 7 2010-10-07 8 Sun Ten Verkaufsabteilung 3500 7 2010-10-06 Ich möchte das höchste Gehalt jeder Abteilung auflisten. Die SQL-Anweisung lautet wie folgt: Wählen Sie Abteilung, Max (Gehalt) als Maximum VON MITARBEITERN GRUPPE NACH ABTEILUNG Die Abfrageergebnisse lauten wie folgt: Abt. MAXIMAL Entwicklungsabteilung 4500 Konstruktionsabteilung 2600 Verkaufsabteilung 3500 Erklären Sie dieses Ergebnis: 1. „Der Spaltenname in der SELECT-Klausel muss eine Gruppierungsspalte oder eine Spaltenfunktion sein“ ist erfüllt, da die SELECT-Klausel eine in „group by“ enthaltene Spalte „dept“ enthält. 2. „Die Spaltenfunktion gibt für jede durch die Group-By-Klausel definierte Gruppe ein Ergebnis zurück.“ Entsprechend der Abteilungsgruppierung wird für jede Abteilung ein Ergebnis zurückgegeben, das dem höchsten Gehalt der jeweiligen Abteilung entspricht. Verwenden der Where-Klausel mit der Group By-Klausel Gruppierte Abfragen können eine standardmäßige Where-Klausel haben, die nicht qualifizierte Zeilen eliminiert, bevor die Gruppen und berechneten Spaltenfunktionen gebildet werden. Die Where-Klausel muss vor der Group-By-Klausel angegeben werden. Fragen Sie beispielsweise nach dem höchsten Gehalt jeder Abteilung und jeder Ebene des Unternehmens, das 2010 eingetreten ist SELECT dept,edlevel,MAX(Gehalt) AS MAXIMUM VON MITARBEITERN WO Einstellungsdatum > '01.01.2010' GROUP BY Abteilung, Bildungsstufe Die Abfrageergebnisse lauten wie folgt: Abteilungsebene MAXIMAL Konstruktionsabteilung 4 2300 Konstruktionsabteilung 5 2600 Verkaufsabteilung 5 3000 Verkaufsabteilung 7 3500 Jeder in der SELECT-Anweisung angegebene Spaltenname wird auch in der GROUP BY-Klausel erwähnt. Spaltennamen, die nicht an beiden Stellen erwähnt werden, erzeugen einen Fehler. Die GROUP BY-Klausel gibt für jede eindeutige Kombination aus „dept“ und „edlevel“ eine Zeile zurück. Verwenden der Having-Klausel nach der GROUP BY-Klausel Sie können Gruppierungen qualifizieren, sodass nur Ergebnisse für Gruppen zurückgegeben werden, die die Kriterien erfüllen. Daher wird nach der GROUP BY-Klausel eine HAVING-Klausel eingefügt. HAVING ist ähnlich wie WHERE (der einzige Unterschied besteht darin, dass WHERE Zeilen filtert, während HAVING Gruppen filtert). HAVING unterstützt alle WHERE-Operatoren. So ermitteln Sie beispielsweise die höchsten und niedrigsten Gehälter für Abteilungen mit mehr als 2 Mitarbeitern: SELECT dept ,MAX(Gehalt) AS MAXIMUM ,MIN(Gehalt) AS MINIMUM VON MITARBEITERN GROUP BY-Abteilung MIT ANZAHL(*) > 2 BESTELLEN NACH Abteilung Die Abfrageergebnisse lauten wie folgt: Abt. MAXIMAL MINIMUM Konstruktionsabteilung 2600 2100 Verkaufsabteilung 3500 3000 So ermitteln Sie beispielsweise die höchsten und niedrigsten Gehälter in Abteilungen, in denen das Durchschnittsgehalt der Mitarbeiter über 3000 liegt: SELECT dept,MAX(Gehalt) AS MAXIMUM,MIN(Gehalt) AS MINIMUM VON MITARBEITERN GROUP BY-Abteilung MIT DURCHSCHNITTLICHEM (Gehalt) > 3000 BESTELLEN NACH Abteilung Die Abfrageergebnisse lauten wie folgt: Abt. MAXIMAL MINIMUM Verkaufsabteilung 3500 3000 Dies ist das Ende dieses Artikels über die detaillierte Verwendung von MySQL Group by und Having. Weitere relevante MySQL Group by-Inhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Linux-Betrieb und -Wartung – Tutorial zur grundlegenden Datenträgerverwaltung
>>: Implementierungscode zur Verwendung von CSS-Texthervorhebung zum Hervorheben von Text
Lassen Sie uns, ohne ins Detail zu gehen, direkt ...
1. Einleitung Wenn Sie im Projekt auf eine Anford...
Voraussetzung: nginx muss über die Module ngx_htt...
Inhaltsverzeichnis Was ist ein Skelettsieb? Demo ...
1. MySQL-Archiv herunterladen (dekomprimierte Ver...
Der von ${param} übergebene Parameter wird als Te...
Artikel-Mindmap Warum Master-Slave-Replikation un...
1. CPU-Auslastung sar -p (den ganzen Tag anzeigen...
Inhaltsverzeichnis 1. Einleitung 2. Implementieru...
1. Docker online herunterladen yum install -y epe...
Inhaltsverzeichnis Vorwort Lua-Skript nignx.conf-...
Frage Wie können wir bei einer bestimmten MySQL-V...
Inhaltsverzeichnis 1. Der magische Erweiterungsop...
Inhaltsverzeichnis 1. Datenbanken verstehen 1.1 D...
Nach drei Tagen voller Schwierigkeiten habe ich d...