الدرس 25: تجميع البيانات باستخدام GROUP BY و HAVING
عادةً ما تلخص الدوال التجميعية الجدول بأكمله. تقوم عبارة GROUP BY بتقسيم الصفوف إلى مجموعات، مما يسمح لك بتطبيق الدالة التجميعية على كل مجموعة على حدة.
استخدام GROUP BY
لمشاهدة الإجماليات الفرعية أو البيانات الموجزة لفئات محددة، يجب عليك استخدام GROUP BY.
- القاعدة: يجب إدراج أي عمود مدرج في عبارة
SELECTوهو ليس دالة تجميعية، في عبارةGROUP BY.
مثال: متوسط الراتب حسب القسم
sql SELECT Department, AVG(Salary) AS AverageSalary FROM Employees GROUP BY Department; -- تجميع النتائج حسب اسم القسم
تصفية المجموعات باستخدام HAVING
- تقوم عبارة
WHEREبتصفية الصفوف الفردية قبل التجميع. - تقوم عبارة
HAVINGبتصفية المجموعات بعد حدوث التجميع والدالة التجميعية.
مثال: البحث عن الأقسام التي بها أكثر من 5 موظفين
sql SELECT Department, COUNT(EmployeeID) AS EmployeeCount FROM Employees GROUP BY Department HAVING COUNT(EmployeeID) > 5; -- تصفية المجموعات
الترتيب الكامل للعمليات
في استعلام SQL القياسي، يتم تنفيذ العبارات بترتيب محدد:
FROM(تحديد الجداول المصدر)WHERE(تصفية الصفوف الفردية)GROUP BY(تجميع الصفوف التي تمت تصفيتها)HAVING(تصفية المجموعات الناتجة)SELECT(تحديد الأعمدة المراد عرضها)ORDER BY(فرز مجموعة النتائج النهائية)