دالات التجميع غالبا ما تحتاج إلى مجموعة أضيف بواسطة بيان.
وGROUP BY بيان
يتم استخدام GROUP BY بيان بالتزامن مع دالات التجميع إلى مجموعة من النتائج، التي وضعتها عمود واحد أو أكثر.
SQL GROUP BY بناء الجملة
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
قاعدة بيانات تجريبي
في هذا البرنامج التعليمي سوف نستخدم قاعدة بيانات نموذج Northwind المعروفة.
فيما يلي مجموعة مختارة من "Orders" الجدول:
رقم التعريف الخاص بالطلب | هوية الزبون | هوية الموظف | تاريخ الطلب | ShipperID |
---|---|---|---|---|
10248 | 90 | 5 | 1996-07-04 | 3 |
10249 | 81 | 6 | 1996-07-05 | 1 |
10250 | 34 | 4 | 1996-07-08 | 2 |
ومجموعة مختارة من "Shippers" الجدول:
ShipperID | ShipperName | هاتف |
---|---|---|
1 | Speedy Express | (503) 555-9831 |
2 | United Package | (503) 555-3199 |
3 | Federal Shipping | (503) 555-9931 |
ومجموعة من "Employees" الجدول:
هوية الموظف | الكنية | الاسم الاول | تاريخ الميلاد | صورة فوتوغرافية | الملاحظات |
---|---|---|---|---|---|
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 GROUP BY مثال
الآن نريد أن العثور على عدد من الأوامر التي بعث بها كل الشاحن.
بحساب عبارة SQL التالية كما أوامر تجميعها من قبل شركات الشحن:
مثال
SELECT Shippers.ShipperName,COUNT(Orders.OrderID) AS NumberOfOrders FROM
Orders
LEFT JOIN Shippers
ON Orders.ShipperID=Shippers.ShipperID
GROUP BY ShipperName;
انها محاولة لنفسك »
GROUP BY العمود أكثر من واحد
يمكننا أيضا استخدام GROUP BY بيان على أكثر من عمود واحد، مثل هذا:
مثال
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;
انها محاولة لنفسك »