Ahmed Yehia2 نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 ما الفرق بين where و having فى sql 1 اقتباس
1 شرف الدين حفني نشر 31 أغسطس 2021 أرسل تقرير نشر 31 أغسطس 2021 having تستخدم عند إستخدام group by , ويتم إستخدامها لتصفية المجموعات , بينما where يتم إستخدامها لتصفية التسجيلات مثال: select name, Count(1) From users Where rating >4 Group By rating في هذا الكود يتم إختيار الإسم وعدد العناصر من الجدول users ويتم فلترة التسجيلات حيث يتم إختيار فقط التقييمات الأكبر من 4 , ثم يقسمو مجموعات حسب تقييمهم حسنا ماذا إن أردنا تصفية المجموعات الناشئة بدلًا من تصفية التسجيلات فقط؟ , إليك مثال select name, Count(1) From users Where rating >4 Group By rating HAVING count(1)>3 في هذا المثال قمنا بتصفية التسجيلات حيث نختار الطلاب الذين تقييمهم أعلى من 4 وأيضًا قمنا بتصفية المجموعات حيث عرضنا فقط المجموعات التي تحتوي على أكثر من ثلاث طلاب, تلك هي وظيفة العبارة having , أن تقوم بتصفية المجموعات الناشئة من دوال الaggregation 2 اقتباس
0 Ali Haidar Ahmad نشر 1 سبتمبر 2021 أرسل تقرير نشر 1 سبتمبر 2021 في بعض الاحيان نحتاج لان نطبق شرطا على النتيجة التي حصلنا عليها من تابع التجميع. مثلاً أوجد اسماء الاقسام التي تملك متوسطاً حسابياً لرواتب المدرسين أكبر من 8000 وبالتالي تطبيق where في هكذا استعلام لن يفيدنا شيء لأن where تطبق قبل أن يتم تطبيق تابع التجميع (هنا نقصد التابع avg في مثالنا). وبالتالي ما العمل في هكذا حالة؟؟؟ الحل هو أن نستخدم الشرط اللاحق (جملة having) وهي تشبه where ولكن تعمل بعدها. Where --> (شرط سابق) اولي Having--> (شرط لاحق) متأخر Select.....,function_name(...) Form....... Where..... Group by..... Having نطبق شرط ما على تابع التجميع مثال: اوجد اسماء الاقسام التي يكون متوسط رواتب المدرسين فيها اكبر من 9999 . Select dept_name , avg (salary) from instructor group by dept_name having avg (salary) >9999 ملاحظة1: الواصفات الموجودة في select خارج توابع التجميع يجب أن توجد في جزء group by ملاحظة2: الواصفات الموجودة في الhaving خارج توابع التجميع يجب أن توجد في group by لأنه يتم تنفيذ group by (يتم إيجاد التجميع المطلوب) ثم يتم تطبيق شرط معين موجود في having بالتسلسل. نتيجة : يكون لدينا التسلسل الآتي في حال وجود group by + having : From--> where -->group by--> having -->select اقتباس
السؤال
Ahmed Yehia2
ما الفرق بين where و having فى sql
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.