منشور

سلسلة دروس SQL| عبارة GROUP BY

هذه المقالة جزء من سلسلة دروس SQL، يمكنك الاطلاع على الفهرس

عبارة GROUP BY في SQL

تجمع عبارة GROUP BY الأسطر التي لها نفس القيم في أسطر تعرض الملخّص، مثل “البحث عن عدد العملاء في كل بلد”.

غالبًا ما يتم استخدام عبارة GROUP BY مع الدالات التجميعية (COUNT ، MAX ، MIN ، SUM ، AVG) لتجميع النتيجة التي تم تعيينها بواسطة عمود واحد أو أكثر.

بناء عبارة GROUP BY

1
2
3
4
5
6
7
8
9
10
11
		SELECT column_name(s)

		FROM table_name

		WHERE condition

		GROUP BY column_name(s)

		ORDER BY column_name(s); 

استعراض قاعدة البيانات

فيما يلي تحديد من جدول “العملاء” في قاعدة البيانات النموذجية 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

أمثلة عن GROUP BY في SQL

يسرد بيان SQL التالي عدد العملاء في كل بلد:

1
2
3
4
5
6
7
		SELECT COUNT(CustomerID), Country

		FROM Customers

		GROUP BY Country;

يسرد بيان SQL التالي عدد العملاء في كل بلد، مرتبة من الأعلى إلى الأدنى:

1
2
3
4
5
6
7
8
9
		SELECT COUNT(CustomerID), Country

		FROM Customers

		GROUP BY Country

		ORDER BY COUNT(CustomerID) DESC;

استعراض قاعدة البيانات

فيما يلي تحديد من جدول “الطلبات” في قاعدة البيانات النموذجية 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

و تحديد من جدول “المورِّدين”:

ShipperID ShipperName
1 Speedy Express
2 United Package
3 Federal Shipping

مثال عن عمل GROUP BY مع JOIN

يسرد بيان SQL التالي عدد الطلبات المرسلة من قبل كل مورد:

1
2
3
4
5
6
7
		SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders

		LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID

		GROUP BY ShipperName;

التالي: عبارة HAVING

هذا المنشور تحت ترخيص CC BY 4.0 بواسطة المؤلف.