قد يبدو متوسط مجموعة مرتفعا رغم أنه يعتمد على قيمة واحدة فقط. للحصول على تقرير أكثر وضوحا، يمكن الجمع بين شرط على AVG وشرط على عدد القيم التي شاركت فعليا في المتوسط. يوضع الشرطان داخل HAVING ويربطان باستخدام AND حتى يتحققا معا للمجموعة نفسها.
مثال
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 5000
AND COUNT(salary) >= 3;
يعرض الاستعلام الأقسام التي يتجاوز متوسط رواتبها خمسة آلاف، بشرط توفر ثلاثة رواتب معروفة على الأقل. اختيار COUNT(salary) مقصود هنا، لأن الموظف الذي لا نعرف راتبه لا يضيف قيمة إلى حساب المتوسط، حتى لو كان صفه موجودا في القسم.
إذا استخدمت OR بدلا من AND، يكفي تحقق أحد الشرطين، وهذا يسمح بأقسام لا تحقق المتطلب كاملا. كذلك فإن عد جميع الموظفين لا يضمن أن المتوسط يستند إلى عدد كاف من الرواتب المعروفة.
باختصار: اربط شرط المتوسط بعدد القيم المشاركة فيه عندما تشترط حدا أدنى لحجم البيانات.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.