GROUP BY gruppiert Daten mit demselben Wert und führt die Aggregatfunktion aus; HAVING filtert die gruppierten Daten: legt Bedingungen basierend auf der Aggregatfunktion oder dem Gruppierungsschlüssel fest; HAVING filtert die Gruppierungsergebnisse und gilt nur für aggregierte Daten.
Die Beziehung zwischen GROUP BY und HAVING in MySQL
GROUP BY und HAVING sind beides Klauseln in MySQL, die zum Aggregieren und Filtern von Daten verwendet werden. Die beiden arbeiten zusammen, um die gruppierten Daten zusammenzufassen und zu filtern.
GROUP BY
GROUP BY-Klausel gruppiert Daten mit demselben Wert und führt Aggregatfunktionen wie SUM, COUNT und AVG für jede Gruppe aus. Es unterteilt den Datensatz in verschiedene Gruppen. Jede Gruppe verfügt über einen eindeutigen Schlüsselwert oder eine Reihe von Schlüsselwerten.
HAVING
HAVING-Klausel wird verwendet, um nach GROUP BY gruppierte Daten zu filtern. Sie ähnelt der WHERE-Klausel, gilt jedoch nur für aggregierte Daten. Mit der HAVING-Klausel können Benutzer Gruppen basierend auf Aggregationsergebnissen filtern, zum Beispiel:
Beziehung
Die Beziehung zwischen GROUP BY und HAVING ist wie folgt:
Beispiel
Die folgende Abfrage verwendet GROUP BY und HAVING, um die Bestelltabelle zu gruppieren und zu filtern:
<code class="sql">SELECT product_category, SUM(quantity) AS total_quantity FROM orders GROUP BY product_category HAVING SUM(quantity) > 100;</code>
Diese Abfrage gruppiert Bestellungen nach Produktkategorie und berechnet die Gesamtmenge für jede Kategorie. Anschließend werden mithilfe von HAVING Kategorien herausgefiltert, deren Gesamtzahl weniger als 100 beträgt.
Das obige ist der detaillierte Inhalt vonDie Beziehung zwischen „group by' und „have' in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!