Pernyataan MySQL GROUP BY
Pernyataan MySQL GROUP BY
Pernyataan GROUP BY
mengelompokkan baris yang memiliki nilai yang sama ke dalam baris ringkasan, seperti "temukan jumlah pelanggan di setiap negara".
Pernyataan GROUP BY
ini sering digunakan dengan fungsi agregat ( COUNT()
,
MAX()
,
MIN()
, SUM()
,
AVG()
) untuk mengelompokkan kumpulan hasil menurut satu atau lebih kolom.
KELOMPOK BERDASARKAN Sintaks
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Basis Data Demo
Di bawah ini adalah pilihan dari tabel "Pelanggan" di database sampel Northwind:
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 |
Contoh MySQL GROUP BY
Pernyataan SQL berikut mencantumkan jumlah pelanggan di setiap negara:
Contoh
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
Pernyataan SQL berikut mencantumkan jumlah pelanggan di setiap negara, diurutkan dari tinggi ke rendah:
Contoh
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
Basis Data Demo
Di bawah ini adalah pilihan dari tabel "Pesanan" di database sampel Northwind:
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 |
Dan pilihan dari tabel "Pengirim":
ShipperID | ShipperName |
---|---|
1 | Speedy Express |
2 | United Package |
3 | Federal Shipping |
GROUP BY Dengan JOIN Contoh
Pernyataan SQL berikut mencantumkan jumlah pesanan yang dikirim oleh setiap pengirim:
Contoh
SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM
Orders
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;