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
Deinstallieren von MySQL 1. Deinstallieren Sie in...
Inhaltsverzeichnis Lazy Loading CSS-Stile: HTML-T...
Inhaltsverzeichnis Vorwort 1. Installieren Sie sc...
Geben Sie der Zeit Zeit und lassen Sie die Vergan...
1 Rufen Sie die Alibaba Cloud-Konsole auf, suchen...
Verwenden provide+inject in Vue Zuerst müssen Sie...
Standort bedeutet „Positionierung“, was hauptsäch...
Docker nimmt viel Platz ein. Immer wenn wir Conta...
Inhaltsverzeichnis 1. verketten() 2. beitreten() ...
Heute habe ich Docker verwendet, um das Image abz...
1. Einleitung table_cache ist ein sehr wichtiger ...
Ich glaube, jeder hat schon einmal Rubbellose ges...
Drei Möglichkeiten zum Konfigurieren von Nginx Di...
Bei der Onlinesuche nach Methoden zur Installatio...
1. Entwicklungsumgebung vue+vant 2. Computersyste...