MySQL GROUP BY (Deutsch)

Zusammenfassung: In diesem Tutorial erfahren Sie, wie Sie MySQL GROUP BY verwenden, um Zeilen basierend auf Werten von Spalten oder Ausdrücken in Untergruppen zu gruppieren.

Einführung in MySQL GROUP BY Klausel

DieGROUP BY Klausel gruppiert eine Reihe von Zeilen in eine Reihe von Zusammenfassungszeilen nach Werten von Spalten oder Ausdrücken. GROUP BY Klausel gibt eine Zeile für jede Gruppe. Mit anderen Worten, es reduziert die Anzahl der Zeilen in der Ergebnismenge.,

Sie verwenden häufig die Klausel GROUP BY mit Aggregatfunktionen wie SUM, AVG, , MIN und COUNT. Die Aggregatfunktion, die in der SELECT – Klausel angezeigt wird, enthält Informationen zu jeder Gruppe.

Die GROUP BY Klausel ist eine optionale Klausel der SELECT Anweisung., Im Folgenden wird die Syntax der GROUP BY – Klausel dargestellt:

DieGROUP BY – Klausel muss nach den KlauselnFROM undWHERE angezeigt werden. Nach den Schlüsselwörtern GROUP BY befindet sich eine Liste von durch Kommas getrennten Spalten oder Ausdrücken, die Sie als Kriterien zum Gruppieren von Zeilen verwenden möchten.,

MySQL evaluates the GROUP BY clause after the FROM, WHERE and SELECT clauses and before the HAVING , ORDER BY and LIMIT clauses:

MySQL GROUP BY examples

Let’s take some example of using the GROUP BY clause.,

A) Einfache MySQL GROUP BY example

Schauen wir uns die Tabelle orders in der Beispieldatenbank an.,

Angenommen, sie wollen gruppe werte der auftrag der status in untergruppen, sie verwenden die GROUP BY klausel mit die status spalte als die folgenden abfrage:

Code language: SQL (Structured Query Language) (sql)

Probieren Sie es aus

Wie Sie sehen können, gibt die GROUP BY Klausel eindeutige Vorkommen von status Werte., Es funktioniert wie der Operator DISTINCT, wie in der folgenden Abfrage gezeigt:

Code language: SQL (Structured Query Language) (sql)

Probieren Sie es aus

B) Verwenden von MySQL GROUP BY mit Aggregatfunktionen

Mit den Aggregatfunktionen können Sie die Berechnung einer Reihe von Zeilen durchführen und einen einzelnen Wert zurückgeben. DieGROUP BY – Klausel wird häufig mit einer Aggregatfunktion verwendet, um die Berechnung durchzuführen und einen einzelnen Wert für jede Untergruppe zurückzugeben.,

Wenn Sie beispielsweise die Anzahl der Bestellungen in jedem Status kennen möchten, können Sie die COUNT – Funktion mit der GROUP BY – Klausel wie folgt verwenden:

Code language: SQL (Structured Query Language) (sql)

Probieren Sie es aus

Siehe die folgenden orders und orderdetails Tabelle.,

Um den Gesamtbetrag aller Bestellungen nach Status zu erhalten, verbinden Sie die orders Tabelle mit der orderdetails Tabelle und verwenden Sie die SUM Funktion zur Berechnung des Gesamtbetrags. Siehe folgende Abfrage:

Code language: SQL (Structured Query Language) (sql)

Probieren Sie es aus

Ebenso gibt die folgende Abfrage die Bestellnummern und den Gesamtbetrag jeder Bestellung zurück.,

Code language: SQL (Structured Query Language) (sql)

Probieren Sie Es Aus

C) MySQL GROUP BY-Ausdruck Beispiel

zusätzlich zu Spalten Sie können Zeilen gruppieren, indem Sie Ausdrücken. Die folgende Abfrage ermittelt den Gesamtumsatz für jedes Jahr.

Probieren Sie es aus

In diesem Beispiel haben wir die Funktion YEAR verwendet, um Jahresdaten aus dem Bestelldatum zu extrahieren ( orderDate)., Wir haben nur Bestellungen mit shipped Status in den Gesamtumsatz aufgenommen. Beachten Sie, dass der Ausdruck, der in der Klausel SELECT angezeigt wird, mit dem in der Klausel GROUP BY identisch sein muss.

D) Wenn Sie MySQL GROUP BY mit HAVING-Klausel example

verwenden, um die von GROUP BY – Klausel zurückgegebenen Gruppen zu filtern, verwenden Sie eine HAVING – Klausel. Die folgende Abfrage verwendet die HAVING – Klausel, um den Gesamtumsatz der Jahre nach 2003 auszuwählen.,

Code language: SQL (Structured Query Language) (sql)

Probieren Sie es aus

Die GROUP BY Klausel: MySQL vs. standard SQL

Standard SQL erlaubt es Ihnen nicht, einen Alias in der GROUP BY Klausel, MySQL unterstützt dies jedoch.

Die folgende Abfrage extrahiert beispielsweise das Jahr aus dem Bestelldatum. Es verwendet zuerst year als Alias des Ausdrucks YEAR(orderDate) und verwendet dann die year alias in der GROUP BY Klausel., Diese Abfrage ist in Standard-SQL nicht gültig.

Probieren Sie es aus

Mit MySQL können Sie die Gruppen auch in aufsteigender oder absteigender Reihenfolge sortieren, während das Standard-SQL dies nicht tut. Die Standardreihenfolge ist aufsteigend., Wenn Sie beispielsweise die Anzahl der Bestellungen nach Status ermitteln und den Status in absteigender Reihenfolge sortieren möchten, können Sie die Klausel GROUP BY mit DESC als folgende Abfrage verwenden:

Code language: SQL (Structured Query Language) (sql)

Probieren Sie es aus

Beachten Sie, dass wir DESC in der GROUP BY – Klausel verwendet haben, um die status in absteigender Reihenfolge zu sortieren., Wir könnten auch explizit ASC in der GROUP BY – Klausel angeben, um die Gruppen nach Status in aufsteigender Reihenfolge zu sortieren.

In diesem Tutorial haben wir Ihnen gezeigt, wie Sie mit der Klausel MySQL GROUP BY Zeilen basierend auf Werten von Spalten oder Ausdrücken in Untergruppen gruppieren.

  • War dieses tutorial hilfreich?
  • YesNo

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Zur Werkzeugleiste springen