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
for-Schleife Die For-Schleife durchläuft die Elem...
GitHub-Adresse: https://github.com/dmhsq/dmhsq-my...
Ich werde nicht viel Unsinn erzählen, schauen wir...
Inhaltsverzeichnis Überblick console.log konsole....
Vorwort Kürzlich wurde unser Server von Hackern a...
** Installieren Sie mysql-8.0.20 unter Linux ** U...
Vorwort: Ich habe zuvor den offiziellen Proxy-Cac...
Update: Jetzt können Sie auf die offizielle MySQL...
Generieren einer Zertifikatskette Verwenden Sie d...
Inhaltsverzeichnis Kurze Analyse des MySQL Master...
Vorwort Golang stellt das Datenbank-/SQL-Paket fü...
beschreiben Dieser Artikel stellt eine Methode zu...
Nginx verbirgt die Versionsnummer In einer Produk...
Informationen zu MySQL-Vorgängen abfragen Status ...
Vue implementiert die Palastgitterrotationslotter...