Toplu işlevler genellikle BY ifadesi ilave GROUP gerekir.
Bildirimi GROUP BY
BY ifadesi GRUP grubuna toplama işlevleri sonuç belirleyen bir veya daha fazla sütun ile bağlantılı olarak kullanılır.
SQL GRUBU TARAFINDAN sözdizimi
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
Demo Veritabanı
Bu dersimizde tanınmış Northwind örnek veritabanını kullanır.
Aşağıda bir seçme "Orders" tablosundaki:
Sipariş Kimliği | Müşteri Kimliği | Çalışan kimliği | Sipariş tarihi | ShipperID |
---|---|---|---|---|
10248 | 90 | 5 | 1996-07-04 | 3 |
10249 | 81 | 6 | 1996-07-05 | 1 |
10250 | 34 | 4 | 1996-07-08 | 2 |
Ve bir seçim "Shippers" tablosunun:
ShipperID | ShipperName | Telefon |
---|---|---|
1 | Speedy Express | (503) 555-9831 |
2 | United Package | (503) 555-3199 |
3 | Federal Shipping | (503) 555-9931 |
Ve bir seçim "Employees" tablosundaki:
Çalışan kimliği | Soyadı | İsim | Doğum günü | Fotoğraf | notlar |
---|---|---|---|---|---|
1 | Davolio | Nancy | 1968-12-08 | EmpID1.pic | Education includes a BA.... |
2 | Fuller | Andrew | 1952-02-19 | EmpID2.pic | Andrew received his BTS.... |
3 | Leverling | Janet | 1963-08-30 | EmpID3.pic | Janet has a BS degree.... |
SQL GRUBU TARAFINDAN Örneği
Şimdi her gönderen tarafından gönderilen siparişlerin sayısını bulmak istiyoruz.
Aşağıdaki SQL deyimi nakliyatçılar göre gruplandırılmış emirleri gibi sayar:
Örnek
SELECT Shippers.ShipperName,COUNT(Orders.OrderID) AS NumberOfOrders FROM
Orders
LEFT JOIN Shippers
ON Orders.ShipperID=Shippers.ShipperID
GROUP BY ShipperName;
Kendin dene "
Birden Fazla Sütun GROUP BY
Biz de böyle, birden fazla sütunu BY ifadesi GROUP kullanabilirsiniz:
Örnek
SELECT Shippers.ShipperName, Employees.LastName,
COUNT(Orders.OrderID) AS
NumberOfOrders
FROM ((Orders
INNER JOIN Shippers
ON
Orders.ShipperID=Shippers.ShipperID)
INNER JOIN Employees
ON
Orders.EmployeeID=Employees.EmployeeID)
GROUP BY ShipperName,LastName;
Kendin dene "