GROUP BY ifadesi aynı değerlere sahip satırları "her ülkedeki müşteri sayısını bul" gibi özet satırlar halinde gruplandırır.
GROUP BY ifadesi genellikle bir sonuç kümesini bir veya daha fazla sütuna göre gruplandırmak için toplama işlevleriyle (COUNT(), MAX(), MIN(), SUM(), AVG()) birlikte kullanılır.
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s)
Aşağıda "Northwind" veritabanının "Customers" ("Müşteriler") tablosundan bir örnek verilmiştir:
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. | 5021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 5023 | 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 |
Aşağıdaki SQL deyimi her ülkedeki müşteri sayısını listeler:
Run SQLSELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
Aşağıdaki SQL ifadesi her ülkedeki müşterileri en yüksekten en düşüğe doğru sıralayarak listeler:
Run SQLSELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC
Aşağıda "Northwind" veritabanının "Orders" ("Siparişler") tablosundan bir örnek yer almaktadır:
ProductID | OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|---|
1 | 10248 | 90 | 5 | 1996-07-04 | 3 |
2 | 10249 | 81 | 6 | 1996-07-05 | 1 |
3 | 10250 | 34 | 4 | 1996-07-08 | 2 |
4 | 10251 | 84 | 3 | 1996-07-08 | 1 |
5 | 10252 | 76 | 4 | 1996-07-09 | 2 |
Ve "Shippers" ("Gönderenler") tablosundaki örnek:
ShipperID | ShipperName | Phone |
---|---|---|
1 | Speedy Express | (503) 555-9831 |
2 | United Package | (503) 555-3199 |
3 | Federal Shipping | (503) 555-9931 |
Aşağıdaki SQL deyimi, her gönderici tarafından gönderilen siparişlerin sayısını listeler:
Run SQLSELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
LEFT JOIN Shippers
ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName