أحدث البرامج التعليمية وتطوير الشبكة
 

SQL GROUP BY بيان


دالات التجميع غالبا ما تحتاج إلى مجموعة أضيف بواسطة بيان.


و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;

انها محاولة لنفسك »