Die GROUP BY
Klausel in SQL wird verwendet, um Zeilen zu gruppieren, die in festgelegten Spalten die gleichen Werte in zusammenfassenden Zeilen aufweisen, z. B. "die Anzahl der Kunden in jedem Land". Es wird häufig mit Aggregatfunktionen (wie Graf, Max, min, sum, sum, avg) verwendet, um eine Berechnung für jede Datengruppe durchzuführen.
Um GROUP BY
zu verwenden, strukturieren Sie normalerweise Ihre SQL -Abfrage wie folgt:
<code class="sql">SELECT column_name(s), aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);</code>
Wenn Sie beispielsweise eine Tabelle mit dem Namen Orders
mit Spalten CustomerID
, OrderDate
und OrderAmount
haben und den Gesamtauftragsbetrag pro Kunden finden möchten, würden Sie verwenden:
<code class="sql">SELECT CustomerID, SUM(OrderAmount) AS TotalOrderAmount FROM Orders GROUP BY CustomerID;</code>
Diese Abfragung der Orders
nach CustomerID
und berechnet die Summe von OrderAmount
für jeden Kunden.
Aggregatfunktionen in SQL führen eine Berechnung für eine Reihe von Werten durch und geben einen einzelnen Wert zurück. Sie werden üblicherweise mit der GROUP BY
Klausel verwendet, um Daten in jeder Gruppe zusammenzufassen. Hier sind einige gemeinsame Gesamtfunktionen:
COUNT(CustomerID)
die Anzahl der Kunden.SUM(OrderAmount)
den Gesamtauftragsbetrag.AVG(OrderAmount)
den durchschnittlichen Bestellbetrag.MIN(OrderAmount)
den kleinsten Bestellbetrag.MAX(OrderAmount)
den größten Bestellbetrag. Diese Funktionen können auf verschiedene Weise mit GROUP BY
kombiniert werden, um aufschlussreiche Berichte und Zusammenfassungen zu erstellen.
Ja, GROUP BY
kann mit mehreren Spalten in SQL verwendet werden. Wenn Sie nach mehreren Spalten gruppieren, wird das Ergebnis durch die Kombination der Werte in diesen Spalten gruppiert. Dies ermöglicht eine detailliertere Datenanalyse.
Die Syntax für die Gruppierung nach mehreren Spalten listet einfach die Spalten in der GROUP BY
Klausel auf, die durch Kommas getrennt sind:
<code class="sql">SELECT column1, column2, aggregate_function(column3) FROM table_name GROUP BY column1, column2;</code>
Wenn Sie beispielsweise den Gesamtauftragsbetrag pro Kunden und Jahr finden möchten, können Sie möglicherweise verwenden:
<code class="sql">SELECT CustomerID, YEAR(OrderDate) AS OrderYear, SUM(OrderAmount) AS TotalOrderAmount FROM Orders GROUP BY CustomerID, YEAR(OrderDate);</code>
Diese Abfragen der Orders
nach CustomerID
und dem Jahr des OrderDate
, berechnet die Gesamtbestellmenge für jede einzelne Kombination von Kunden und Jahr.
Die HAVING
wird in Kombination mit der GROUP BY
Klausel zu Filtergruppen anhand eines bestimmten Zustands verwendet. Während die WHERE
-Klausel einzelne Reihen vor der Aggregation filtert, filtert die HAVING
die gruppierten Daten nach der Aggregation.
Die typische Struktur einer Abfrage, die sowohl GROUP BY
als HAVING
lautet wie folgt:
<code class="sql">SELECT column_name(s), aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition ORDER BY column_name(s);</code>
Wenn Sie beispielsweise den Gesamtauftragsbetrag pro Kunden finden möchten, aber nur Kunden mit einem Gesamtauftragsbetrag von mehr als 1000 einschließen möchten, würden Sie verwenden:
<code class="sql">SELECT CustomerID, SUM(OrderAmount) AS TotalOrderAmount FROM Orders GROUP BY CustomerID HAVING SUM(OrderAmount) > 1000;</code>
In dieser Abfrage gruppiert die GROUP BY
Klausel die Bestellungen nach CustomerID
und berechnet den Gesamtauftragsbetrag für jeden Kunden. Die HAVING
hat dann die Ergebnisse so filtert, dass nur die Gruppen (Kunden) enthalten sind, wobei der Gesamtauftragsbetrag von mehr als 1000 beträgt.
Das obige ist der detaillierte Inhalt vonWie benutze ich die Gruppe nach Klausel in SQL, um Daten zu gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!