Heim  >  Artikel  >  tägliche Programmierung  >  Die Beziehung zwischen „group by“ und „have“ in MySQL

Die Beziehung zwischen „group by“ und „have“ in MySQL

下次还敢
下次还敢Original
2024-04-27 01:57:151122Durchsuche

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 „have“ in MySQL

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:

  • Gruppen mit einem bestimmten Mittelwert filtern
  • Gruppen filtern, die eine Anzahl von Gruppen enthalten, die größer als ein bestimmter Schwellenwert ist
  • Gruppen mit Null oder Nicht-Null filtern Werte

Beziehung

Die Beziehung zwischen GROUP BY und HAVING ist wie folgt:

  • GROUP BY gruppiert zuerst die Daten und dann filtert HAVING die gruppierten Daten.
  • Bedingungen in der HAVING-Klausel müssen eine Aggregatfunktion verwenden oder auf einen Gruppierungsschlüssel verweisen.
  • Bevor HAVING eine Filtergruppe erstellt, muss zunächst die GROUP BY-Gruppierung durchgeführt werden.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn