recent
أخبار ساخنة

استخدام الجمل الشرطية مع الدوال التجميعية في قواعد البيانات SQL الدرس|9|

الصفحة الرئيسية


عبارة Group By

هي عبارة عن دالة شرط تقوم بتقسيم البيانات إلى مجموعات على حسب عمود معين او اكثر و قد يكن ذلك العمود مفتاح ثانوي في عمود آخر.
SQL >SELECT deptno , MAX(sal)
 2 FROM emp
 3 GROUP BY deptno ;
 
لقد تم تقسيم الموظفين إلى مجموعات على حسب رقم الإدارة و كان اكبر راتب في الإدارة رقم عشرة و هو 5000 و اكبر راتب في الإدارة رقم عشرين و هو 3000 و اكبر راتب في الإدارة رقم ثلاثين و هو 2850 و تم إستخدام دالة الشرط Group By g لوجود دالة التجميع Max.
SQL> SELECT deptno , sal FROM emp;
 

إستخدام الدوال التجميعية

1- عند كتابة اي عمود داخل قائمة Select لا بد من كتابته مع جزء Group By و ذلك لأن الدوال التجميعية تتعامل مع عدة صفوف.
2- يمكن إستخدام جزء ORDER BY لترتيب الصفوف مع التجميعية كما هو مبين في المثال السابق.
3- لا يمكن إستخدام الدوال التجميعية في الجزء Where و لكن نستخدم الجزء Having بدل منها.

دالة الشرط ORDER BY

تستخدم هذه الدالة لترتيب الصفوف مع الدوال التجميعية على حسب كل صف مثل إيجاد المتوسط الحسابي لكل إدارة على حدة.

دالة الشرط HAVING

هي عبارة عن دالة تستخدم لعمل شرط معين على الدوال التجميعية بدل من Where.

مثال
عرض المتوسط الحسابي لمرتبات الموظفين في كل إدارة كما تم ترتيب المخرجات تصاعدياً حسب المتوسط.
SQL> SELECT deptno , AVG(sal) 
 2 FROM emp
 3 GROUP BY deptno 
 4 ORDER BY AVG(sal) ;


ملاحظة 
عند كتابة العمود (deptno) ضمن قائمة Select و لم نكتبه ضمن جزء Group By سوف تظهر رسالة خطأ إذا لا بد عند كتابة العمود (deptno) أن نكتب العمود (deptno) في جزء Group By.

عند إستخدام الدوال التجميعية داخل دالة الشرط Where تظهر رسالة خطأ و بدل من ذلك نستخدم جملة Having.

SQL> SELECT deptno , AVG(sal) 
 2 FROM emp 
 3 WHERE AVG(sal) > 2000 
 4 GROUP BY deptno ; 

ERROR at line 3 : 
ORA-00934: group function is not allowed herev  رسالة الخطأ

مثال
عرض المتوسط الحسابي لمرتبات الموظفين في كل إدارة بشرط أن تكون المتوسطات الحسابية للمرتبات اكبر من 2000 سوف نستخدم دالة الشرط Having.
 SQL> SELECT deptno , AVG(sal)
 2 FROM emp 
 3 GROUP BY deptno
 4 HAVING AVG(sal) > 2000 ; 

author-img
Ahmed kaissar

تعليقات

تعليق واحد
إرسال تعليق
  • ch_abo_manar15 ديسمبر 2020 في 12:05 م

    اي طالب يواجة صعوبة في المادة يمكنة التواصل معي على القناة على تلجرام وباذن الله سوف نحل كل المشاكل
    نظرا الى ان المادة مهمة جدا في جميع جوانب التقنية والهكر وغيرها .......

    حذف التعليق
    google-playkhamsatmostaqltradent