سلسلة دروس SQL| عبارة GROUP BY
هذه المقالة جزء من سلسلة دروس SQL، يمكنك الاطلاع على الفهرس
- عبارة GROUP BY في SQL
- بناء عبارة GROUP BY
- استعراض قاعدة البيانات
- أمثلة عن GROUP BY في SQL
- استعراض قاعدة البيانات
- مثال عن عمل GROUP BY مع JOIN
عبارة 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
بواسطة المؤلف.