Skip to main content

الجزء العاشر: تجميع البيانات كفئات Group By

الجزء العاشر: تجميع البيانات كفئات
Group By

في هذا الجزء سنتعلم كيفية استرجاع البيانات وتجميعها بأستخدام دوال التجميع الخاصة Aggregate Function مثل الMIN,MAX,AVE,COUNT وبأستخدام فقرة الGroup by التى على اساسها سيتم تجميع البيانات, وسنتعلم كيفية استخدام الWhere والHaving معها  لغرض تصفية البيانات وما الفرق بينهما:

اول شيء لغرض تطبيق الدرس اليوم يتوجب عمل الجدول التالي:
CREATE TABLE tblEmployees
(
ID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(30) NOT NULL,
Gender NVARCHAR(20) NOT NULL,
City NVARCHAR(30) NOT NULL,
Salary INT NOT NULL
)
وملأ الجدول بالبيانات التالية:
ID
Name
Gender
City
Salary
1
صفاء
ذكر
أربيل
295000
2
علاء
ذكر
أربيل
670000
3
سوزان
أنثى
بغداد
930000
4
أمير
ذكر
أربيل
350000
5
سارة
أنثى
بغداد
730000
6
محمد
ذكر
البصرة
890000
7
أحمد
ذكر
البصرة
980000
8
كمال
ذكر
دهوك
1000000


والأن السؤال: اريد استرجاع المبلغ الكلي لكل رواتب الموظفين في جدول tblEmployees ؟
الجواب سهل بأستخدام دالة التجميع  Aggregate Function SUM::


ملاحظة: استخدمت في المثال اعلاه AS لغرض تسمية الحقل بأسم مستعار مثل "المبلغ الأجمالي" لسهولة معرفة ماالمسترجع؟!, وبعدها استخدمت قطع الأقواس [] وفي داخلها عبارة "المبلغ الأجمالي" فائدة هذه الأقواس عندما يكون الأسم المستعار للحقل به فراغ Space
وفي النتيجة قيمة واحدة فقط مسترجعة وهي المبلغ الأجمالي لجمع كل الرواتب ووضعها بحقل واحد عن طريق دالة التجميع Aggregate Function وهي الSUM


سؤال اخر: اريد معرفة ماهو المبلغ الكلي لرواتب الموظفين في كل مدينة؟
الجواب: هنا حدد في كل مدينة, اي المبلغ الكلي لرواتب الموظفين حسب كل مدينة وهذا الفئات ستحدد عن طريق Group By كالأتي:


الفكرة هي :



سؤال اخر: اريد المبلغ الكلي لرواتب الموظفين حسب كل مدينة وحسب نوع الجنس(ذكر او انثى)؟
الجواب: نفس فكرة المثال السابق فقط قم بتجميع البيانات المسترجعة حسب نوع الجنس Gender عن طريق الGroup By



سؤال اخر : اريد عدد الموظفين في كل مدينة مع المبلغ الكلي لرواتبهم ومع نوع الجنس(ذكر او انثى)؟
الجواب: لأيجاد عدد الموظفين في كل مدينة قم بأستخدام دالة التجميع Aggregate Function وهي COUNT() :




 والأن نأتي الى أستخدام الWHERE & HAVING في البدء يجب ان نعرف الفرق بين الأثنين:
·       تستخدم فقرة الWHERE مع الSELECT , INSERT, UPDATE, DELETE   بينما الHAVING  تستخدم فقط في الSELECT ومع الGROUP BY
·       يجب ان تستخدم الWHERE قبل فقرة الGROUP BY بينما الHAVING يجب ان تستخدم بعد الGROUP BY , وهذا يبرهن على ان تصفية البيانات في الWHERE تتم قبل ان تقسم الى فئات عن طريق الGROUP BY , بينما في الHAVING تستخدم بعد ان قسمت البيانات الى فئات عن طريق الGROUP BY.
·       يمكن استخدام دوال التجميع Aggregate Function  مع الHAVING بينما لا تستطيع مع الWHERE .

والأن بعدما عرفنا الفرق بين الWHERE  و الHAVING , اريد منك ان تسترجع كافة بيانات الذكور في محافظة أربيل  مع المبلغ الكلي لرواتبهم وعددهم؟
الجواب:


او:



سؤال اخير اريد المبلغ الكلي لرواتب الموظفين في كل مدينة مع شرط ان يكون المبلغ اكبر من 1400,000 ?
الجواب:
قبل الجواب لأحظ الخطأ (يشير الا عدم السماح بأستخدام دوال التجميع
Aggregation Function  مع الWHERE)



ولحل ذلك قمت بأستخدام دالة التجميع SUM مع الHaving  بعد الGroup By :


Comments

Popular posts from this blog

How To Play .srt Subtitles File in Windows Media Player

How To Play .srt Subtitles File in Windows Media Player links: https://sourceforge.net/projects/wmpsub/ wmp,.srt Subtitles File in Windows Media Player,How To Play .srt Subtitles File in Windows Media Player,How To,Safaa Al-Hayali,saf3al2a,srt subtitle in WMP,Windows,Windows Media Player,media,.ass,local subtitles

How to fix the disk is write protected

in this video tutorial, I'll show you how to remove/solve/fix the disk is write protected from USB flash drive. To download the necessary 2 files: Download >  SAFAA_ALHAYALI.IMG  - 1.18 MB Download >  Win32DiskImager-0.9.5-install.exe - 11.7 MB write protection,remove write protection,write protected,How to fix the disk is write protected,how to solve the disk is write protected,how to remove the disk is write protected,USB write protected,fix USB write protected,fix HDD write protected,how to,windows,USB flash drive ERROR,fix USB flash drive write protected,USB flash drive write protected

Virtual Box : How to Increase Disk Size - Windows

How to increase disk size or disk storage in oracle virtual box the command you have to use: vboxmanage.exe modifymedium "[YourPathToVdiFileOfYourVirtualMachine]" --resize [NUMBER] virtual,box,vbox,oracle,partition,size,disk,increase,resize,windows,10,microsoft,vdi,vboxmanage,configuration,Safaa AL-Hayali,saf3al2a,Oracle,VirtualBox,How to,windows 10