MySQL GROUP BY- Anweisung
Die MySQL GROUP BY-Anweisung
Die GROUP BY
Anweisung gruppiert Zeilen mit denselben Werten in Zusammenfassungszeilen, wie z. B. „Finde die Anzahl der Kunden in jedem Land“.
Die GROUP BY
Anweisung wird häufig mit Aggregatfunktionen ( COUNT()
,
MAX()
,
MIN()
, SUM()
,
AVG()
) verwendet, um die Ergebnismenge nach einer oder mehreren Spalten zu gruppieren.
GROUP BY-Syntax
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Demo-Datenbank
Nachfolgend finden Sie eine Auswahl aus der Tabelle "Kunden" in der Northwind-Beispieldatenbank:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
MySQL GROUP BY-Beispiele
Die folgende SQL-Anweisung listet die Anzahl der Kunden in jedem Land auf:
Beispiel
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
Die folgende SQL-Anweisung listet die Anzahl der Kunden in jedem Land auf, von oben nach unten sortiert:
Beispiel
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
Demo-Datenbank
Nachfolgend finden Sie eine Auswahl aus der Tabelle "Bestellungen" in der Northwind-Beispieldatenbank:
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10248 | 90 | 5 | 1996-07-04 | 3 |
10249 | 81 | 6 | 1996-07-05 | 1 |
10250 | 34 | 4 | 1996-07-08 | 2 |
Und eine Auswahl aus der Tabelle „Versender“:
ShipperID | ShipperName |
---|---|
1 | Speedy Express |
2 | United Package |
3 | Federal Shipping |
GROUP BY mit JOIN Beispiel
Die folgende SQL-Anweisung listet die Anzahl der von jedem Versender gesendeten Bestellungen auf:
Beispiel
SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM
Orders
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;