بسم الله الرحمن الرحيم
ربنا تقبل منا وتب علينا انك انت التواب الرحيم
ORDER BYClause
عندما نريد ان تعرض البيانات بترتيب حقل معين نستخدم
Asc للترتيب التصاعدى وهو ال default وDesc للترتيب التنازلى مع استخدام جملة ORDER BY
لاحظ فى المثال التالى ترتيب البيانات عن طريق ترتيب بيانات حقل تاريخ التعيين تصاعديا
لاحظ لايشترط استخدام كلمة Asc


لا حظ فى المثال التالى ترتيب البيانات عن طريق ترتيب بيانات حقل تاريخ التعيين تنازليا
لاحظ يشترط استخدام كلمة Desc

you can also sort by a column number in the
SELECT list
ممكن ان نذكر رقم الحقل فى جملة select والذى نريد تريب البيانات على اساسه:لاحظ المثال التالى

example sorts the output in the descending order by
salary



Sorting by Column Alias
ممكن استخدام الاسم الرمزى والمعطى للحقل فى جملة select والذى نريد ترتيب البيانات عن طريق ترتيبه تصاعديا او تنازليا
لا حظ المثال التالى :

Sorting by Multiple Columnsالترتيب باستخدام عدة حقول

لا حظ فى المثال التالى اننا اخترنا ان نرتب البيانات بحيث يكون ترتيب رقم الادارة تصاعدى وترتيب المرتب تنازلى وهنا يتم ترتيب رقم الادارة اولا ثم يتم ترتيب المرتبات فى كل ادارة على حده تنازليا :


Aggregating DataUsing GroupFunctions

* تجميع البيانات فى مجموعات واجراء عمليات على هذه المجموعات
After completing this lesson, you should be able todo the following
Identify the available group functions*
Describe the use of group functions*
Group data using the GROUP BY clause*
Include or exclude grouped rows by using theHAVING clause

?What Are Group Functions

Group functions operate on sets of rows to give one result per group
فمثلا اذا اردنا ان نأتى اكبر مرتبات كل الموظفين فسيخرج الناتج على هيئة قيمه واحدة فقط


واذا اردنا ان نأتى بمجموع مرتبات موظفين كل ادارة فسنقسم اولا الموظفين الى مجموعات تمثل كل مجموعة الموظفين العاملين فى ادارة معينه ثم نجمع المرتبات الاجماليه لكل مجموعة وهو يدل على مجموع المرتبات لكل اداره

Types of Group Functions
AVG تحسب المتوسط لمجموعة من البيانات
COUNT تحسب عدد البيانات اى الحقول فى مجموعة من البيانات
MAX تحسب اكبر قيمة فى مجموعة من البيانات
MIN تحسب اصغر قيمة فى مجموعة من البيانات
STDDEVتحسب الانحراف المعيارى لمجموعة من البيانات
SUMتحسب مجموع القيم الموجودة فى مجموعة من البيانات
VARIANCEتحسب التباين لمجموعة من البيانات
Group Functions Syntax


مثال :لايجاد متوسط المرتبات واكبرمرتب واصغر مرتب ومجموع المرتبات لكل من يحتوى الكود الوظيفى لهم على الحروف REP



مثال : لايجاد تاريخ تعيين اول موظف واخر موظف :



مثال : لايجاد اسم اول موظف واخر موظف من حيث الترتيب الابجدى :





مثال: لايجاد عدد الموظفين فى الادارة رقم 50 من جدول الموظفين :




مثال : لايجاد عدد الادارات التى يعمل بها الموظفين من جدول الموظفين بمعنى ايجاد عدد الادارات بدون تكراروذلك عن طريق استخدام كلمة distinctقبل اسم الحقل :


مثال : لايجاد متوسط الcells التى بها قيم فى حقل ال commission_pctمع ملاحظة عدم الاخذ فى الاعتبار الحقول الخاليه اى التى بها null مع جميع ال group functions: ففى هذا المثال نجد انه جمع قيمة الحقول التى تحتوى على قيم ويقسم على عدد هذه الحقول وليس العدد الكلى لحساب المتوسط للحقول التى بها قيم فقط :


مثال : اما اذا اردنا ان نحسب متوسط القيم الموجودة فى كل الحقول بايجاد المجموع الكلى للقيم والقسمة على العدد الكلى للحقول بما فيها الحقول الخاليه واعتبار هذه الحقول الخاليه بها صفر 0:


هنا داله NVLتضع مكان كل NULLقميه صفر0 ثم نحسب المتوسط عن طريق جمع كل القيم ونقسم على العدد الكلى للROWS.
Using the GROUP BY Clause
نستخدم GROUP BY لتقسيم النتائج الى مجموعات باستخدام حقل معين او اكثر .
مثال : فى جدول بيانات الموظفين نجد ان كل موظف امامه رقم الادارة التى يعمل بها وهذا الرقم يوضع امام كل الموظفين العاملين فى نفس الادارة فاذا اردنا ان نقسم الموظفين الى مجموعات بناءا على رقم الادارة وحساب متوسط مرتبات كل مجموعة امام رقم الاداره الخاص بها
*اذن المسأله هى اوجد متوسط المرتبات فى كل اداره :


*هنا نلاحظ ان كل الحقول فى SELECTيجب ان تكون موجوده فى GROUP BY الا اذا كانت GROUP FUNCTION
*واذا اردنا عرض المتوسط لكل مجموعه فقط يكون كالتالى :


*سؤال : هل من الممكن تقسيم البيانات عن طريق اكثر من حقل كالتالى


واذا كان صحيحا هل يمكنك تخيل شكل تقسيم البيانات ؟
*سؤال اخر : هل الجمل التاليه صحيحة ام خطأ؟ ولماذا ؟


هنا نكون قد وصلنا الى الشكل التالى من جملة SELECT: