Ali Ahmed55 نشر 28 أكتوبر أرسل تقرير نشر 28 أكتوبر السلام عليكم هو اي الفرق مابين HAVING وبين WHERE في الSQL ؟ 2 اقتباس
0 ياسر مسكين نشر 28 أكتوبر أرسل تقرير نشر 28 أكتوبر WHERE تستخدم لتصفية البيانات قبل عمليات التجميع مثل COUNT SUM AVG وتطبّق مباشرة على الصفوف في الجدول وتعمل على ترشيح الصفوف التي يتم أخذها في الاعتبار قبل تنفيذ أي دالة تجميعية كما لا يمكن استخدام دوال التجميع مثل COUNT و SUM مع WHERE. SELECT name, age FROM employees WHERE age > 30; فمثلا هذا الاستعلام يقوم بإحضار كل الموظفين الذين أعمارهم أكبر من 30. في حين أنّ HAVING تستخدم لتصفية النتائج بعد تطبيق عمليات التجميع وتستخدم عادة مع GROUP BY لتصفية المجموعات بناء على شروط معينة تشمل دوال التجميع ويمكن استخدام دوال التجميع مع HAVING كالتالي: SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 5; فهذا الاستعلام يقوم بإحضار الأقسام التي تحتوي على أكثر من 5 موظفين فقط، بعد تجميع البيانات. أي باختصار نستخدم WHERE لتصفية البيانات قبل عمليات التجميع و HAVING لتصفية البيانات بعد عمليات التجميع وعادة مع GROUP BY. يمكنك الاطلاع على هذه الإجابات على نفس سؤالك من هنا: 1 اقتباس
0 محمد عاطف17 نشر 28 أكتوبر أرسل تقرير نشر 28 أكتوبر وعليكم السلام ورحمة الله وبركاته. الفرق الرئيسي بينهما هو في كيفية ترشيح النتائج و ترتيبهم في جملة إستعلام SQL. WHERE: تستخدم لتصفية الصفوف قبل تطبيق عمليات التجميع aggregation (مثل SUM، AVG، إلخ). يتم تطبيقها على كل صف في الجدول مباشرة. لا يمكن استخدامها لتصفية نتائج دوال التجميع أو الأعمدة التي تم إنشاءه في أمر SQL ، لأنها تعمل قبل عمليات التجميع حيث تعمل على الجدول مباشرة حيث تقوم SQL بجلب البيانات فقط التي تشابه الشرط في WHERE . يتم كتابتها قبل جملة GROUP BY . SELECT column1, column2 FROM table_name WHERE column1 > 100 GROUP BY column1 HAVING: يُستخدم لتصفية النتائج بعد تطبيق عمليات التجميع aggregation . يتم تطبيقها شروط على دوال التجميع أو أي عمود أخر. يتم كتابتها بعد جملة GROUP BY . SELECT column1, SUM(column2) FROM table_name GROUP BY column1 HAVING SUM(column2) > 100; تخيل مثلا أنه لدينا جدول للمنتجات ونحن نريد البحث عن المنتجات التي لها تصنيف إلكترونيات مثلا . هنا سنستحدم WHERE وهنا SQL ستقوم بالمرور على جميع الصفوف في الجدول و أي منتج له تصنيف إلكترونيات سيتم إختياره . تخيل بعد ذلك نحن نريد مثلا المنتج الذي من تصينيف إلكترونيات ومجموع مبيعاته مثلا 1000 . هنا سنستخدم HAVING و SQL ستقوم أولا بترشيح المنتجات بناء على التصنيف وستحتفظ بتلك النتائج كما في المثال السابق . بعد ذلك ستقوم SQL بالتجميع وبعد التجميع ستقوم بالترشيح بناء على شرط HAVING : SELECT product_name, SUM(sales) AS total_sales ,category FROM products WHERE category = 'إلكترونيات' GROUP BY product_name HAVING SUM(sales) >= 1000; إذا أولا SQL ستأتي بالنتائج من قاعدة البيانات التي لها category يسمى إلكترونيات بعد ذلك ستقوم بجمع المبيعات لجميع تلك الصفوف وبعد ذلك تقوم بعمل ترشيح ثاني بإستخدامHAVING وأخيرا تعيد النتائج النهائية. 1 اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هو اي الفرق مابين HAVING وبين WHERE في الSQL ؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.