تتضمن عملية
تجميع البيانات في SQL
تلخيص أو تجميع البيانات لاستخلاص الإحصاءات من مجموعات البيانات الكبيرة. إليك
نظرة عامة على المفاهيم الرئيسية:
الوظائف
الجماعية (Aggregate
Functions):
توفر SQL مجموعة متنوعة من الوظائف الجماعية مثل COUNT، SUM،
AVG، MIN،
و MAX.
COUNT يحسب عدد الصفوف في مجموعة بيانات.
SUM يحسب المجموع الإجمالي للقيم الرقمية في
عمود.
AVG يحسب القيمة المتوسطة لعمود رقمي.
MIN يسترد القيمة الدنيا من عمود.
MAX يسترد القيمة القصوى من عمود.
تجميع
البيانات:
يستخدم الجملة
GROUP
BY لتجميع
الصفوف التي تحتوي على نفس القيم إلى صفوف ملخصة.
يستخدم غالبًا
مع الوظائف الجماعية لإجراء الحسابات على كل مجموعة بشكل منفصل.
يسمح التجميع
بتحليل البيانات على مستويات مختلفة من التفصيل.
تصفية
المجموعات (Grouping Data):
يستخدم الجملة
HAVING لتصفية المجموعات استنادًا إلى شروط محددة.
يشبه العمل
بالجملة WHERE ولكن يعمل
على الصفوف المجمعة بدلاً من الصفوف الفردية.
يُستخدم HAVING عادةً بالتزامن مع GROUP BY لتصفية البيانات المجمعة.
من خلال دمج
الوظائف الجماعية، وجملة GROUP BY،
وجملة HAVING، يمكن
لمستخدمي SQL إجراء
تحليلات معقدة على المجموعات البيانية واستخراج إحصاءات معنوية واتخاذ قرارات
مستنيرة بناءً على البيانات الملخصة.
--أمثلة على تجميع البيانات:
هذا الاستعلام
يستخدم الوظيفة الجماعية COUNT
لحساب عدد العملاء في كل مدينة، ومن ثم يستخدم GROUP BY لتجميع البيانات بناءً على المدينة.
SELECT City, COUNT(CustomerID) AS NumCustomers
FROM Customers
GROUP BY City;
هذا يؤدي إلى الحصول على عدد العملاء في كل مدينة بشكل منفصل، حيث يمكن أن تظهر النتيجة كما يلي
City |
NumCustomers |
New York |
3 |
Los Angeles |
2 |
Chicago |
2 |
... |
... |
حساب المبلغ الإجمالي للطلبات لكل عميل:
SELECT CustomerID, SUM(OrderAmount) AS TotalAmount
FROM Orders
GROUP BY CustomerID;
هذا الاستعلام يستخدم الوظيفة الجماعية SUM لحساب المبلغ الإجمالي للطلبات لكل عميل، ومن ثم يجمع البيانات بواسطة رقم العميل.
هذا يؤدي إلى الحصول على حساب المبلغ الإجمالي للطلبات لكل عميل، حيث يمكن أن تظهر النتيجة كما يلي
CustomerID | Total Amount |
1 | 5000 |
2 | 7500 |
3 | 3200 |
... | ... |
عرض الوظيفة الوسيطة لأعمار الموظفين:
SELECT AVG(Age) AS MedianAge
;FROM Employees
هذا الاستعلام يستخدم الوظيفة الجماعية AVG لحساب الوسيطة لأعمار الموظفين في الجدول.
تصفية المجموعات للعملاء الذين قاموا بعدد محدد من الطلبات:
SELECT CustomerID, COUNT(OrderID) AS NumOrdersFROM OrdersGROUP BY CustomerID;HAVING COUNT(OrderID) > 5
هذا الاستعلام يستخدم الوظيفة الجماعية COUNT
لحساب عدد الطلبات لكل عميل، ويستخدم جملة HAVING
لتصفية العملاء الذين قاموا بأكثر من 5 طلبات.