4.6 SQL - GROUP BY

جملة SQL GROUP BY

جملة GROUP BY تُستخدم مع الدوال التجميعية (Aggregate Functions) زي:

  • COUNT()
  • SUM()
  • AVG()
  • MAX()
  • MIN()

... لتجميع النتائج حسب قيمة أو أكثر.



الصيغة:

SELECT column_name, AGGREGATE_FUNCTION(column_name)
FROM table_name
WHERE condition
GROUP BY column_name;


مثال: عدد الطلبات لكل عميل

عندنا جدول Orders فيه CustomerID و OrderID:

SELECT CustomerID, COUNT(OrderID) AS OrderCount
FROM Orders
GROUP BY CustomerID;


مثال باستخدام SUM()

من جدول OrderDetails نجيب إجمالي الكمية لكل منتج:

SELECT ProductID, SUM(Quantity) AS TotalQuantity
FROM OrderDetails
GROUP BY ProductID;


استخدام GROUP BY مع WHERE

SELECT CustomerID, COUNT(OrderID) AS OrderCount
FROM Orders
WHERE OrderDate >= '2024-01-01'
GROUP BY CustomerID;

⬅ عدد الطلبات لكل عميل من بداية 2024 فقط.



GROUP BY مع أكثر من عمود:

SELECT Country, City, COUNT(CustomerID) AS CustomerCount
FROM Customers
GROUP BY Country, City;


GROUP BY مع HAVING

HAVING بتفلتر النتائج بعد ما يتم التجميع:

SELECT CustomerID, COUNT(OrderID) AS OrderCount
FROM Orders
GROUP BY CustomerID
HAVING COUNT(OrderID) > 5;

⬅ يعرض العملاء اللي عندهم أكتر من 5 طلبات فقط.



الفرق بين WHERE و HAVING:

WHERE HAVING
قبل GROUP BY (يشتغل على الصفوف) بعد GROUP BY (يشتغل على النتائج المجمّعة)

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework