كيفية القيام بما يلي: استخدم HAVING و الموقع عبارات في الاستعلام نفسه
في بعض الحالات، قد تحتاج إلى استبعاد صفوف الفردية من المجموعات (استخدام بند الموقع) قبل تطبيق شرط على المجموعات ككل (باستخدام جملة HAVING).
يشبه جملة HAVING بند الموقع، ولكن يتم تطبيق على المجموعات ككل (بمعنى، على صفوف في مجموعة النتائج التي تمثل المجموعات)، بينما بند الموقع ينطبق على صفوف الفردية. يمكن أن يحتوي استعلام على كل من بند الموقع وجملة HAVING. في هذه الحالة:
بند الموقع تطبيق أولاً على صفوف الفردية في الجداول أو الكائنات valued على الجدول في جزء "مخطط". صفوف فقط التي تفي بالشروط الموجودة في بند الموقع مجمعة.
جملة HAVING هو ثم المطبق على صفوف في التعيين النتائج. فقط المجموعات التي تحقق HAVING في الشروط التي تظهر في استعلام الإخراج. يمكنك يطبق جملة HAVING فقط إلى أعمدة التي تظهر أيضا في جملة مجموعة بواسطة أو في دالة تجميع.
على سبيل المثال، تصور أنك تقوم بربط titlesو publishersالجداول إلى قم بإنشاء استعلام يظهر كتاب متوسط السعر لمجموعة من الناشرين. تريد إلى مشاهدة متوسط السعر لمجموعة معينة من الناشرين فقط — الناشرين ربما فقط في الولاية كاليفورنيا. وحتى بعد ذلك، تحتاج إلى مشاهدة متوسط السعر فقط إذا أنه هو عبر 10.00 دولار.
يمكنك إنشاء الشرط أول بما في ذلك بند الموقع، الذي يتجاهل أي ناشرين غير موجودة في كاليفورنيا، قبل جارى الحساب متوسط الأسعار. يتطلب الشرط الثاني لجملة HAVING، لأن الشرط هو استناداً إلى نتائج تجميع وتلخص بيانات الموجودة. SQL الناتج كشف قد تبدو كما يلي:
SELECT titles.pub_id, AVG(titles.price)
FROM titles INNER JOIN publishers
ON titles.pub_id = publishers.pub_id
WHERE publishers.state = 'CA'
GROUP BY titles.pub_id
HAVING AVG(price) > 10
يمكنك إنشاء كل منهما HAVING جمل الموقع و في جزء المعايير. بشكل افتراضي، إذا قمت بتحديد شرط بحث عمود، يصبح الشرط جزءا من جملة HAVING. ومع ذلك، يمكنك تغيير شرط أن يكون بند الموقع.
يمكنك إنشاء بند الموقع وجملة HAVING تتضمن نفس العمود. لتنفيذ ذلك، يجب عليك إضافة العمود مرتين إلى جزء "خصائص"، قم بتحديد مثيل واحد كجزء من جملة HAVING والمثيل الآخر كجزء من بند الموقع.
ملاحظة
قد تختلف مربعات الحوار وأوامر القائمة التى تشاهدها الان عن تلك الموصوفة في التعليمات اعتماداً على الإعدادات النشطة أو الإصدار الخاص بك. لتغيير الإعدادات الخاصة بك, اختر إعدادات الاستيراد و التصدير ضمن القائمة أدوات . لمزيد من المعلومات، راجع العمل مع إعدادات.
إلى قم بتحديد شرط الموقع في استعلام تجميع
قم بتحديد المجموعات لجهاز استعلام. للمزيد من التفاصيل ، راجع كيفية القيام بما يلي: مجموعة صفوف في نتائج استعلام.
إذا كان ذلك هو الفعل إضافة العمود الذي تريد إسناد شرط الموقع في جزء المعايير.
مسح العمود إخراج ما لم يكن عمود بيانات جزءا من جملة مجموعة بواسطة أو مضمنة في دالة تجميع.
في العمود عامل تصفية، قم بتحديد شرط الموقع. مصمم الاستعلام و عرض بإضافة الشرط إلى جملة HAVING عبارة SQL.
ملاحظة
استعلام هو موضح في المثال لهذا إجراء بربط جدولين، titlesو publishers.
عند هذه النقطة في الاستعلام SQL كشف تحتوي على جملة HAVING:
SELECT titles.pub_id, AVG(titles.price) FROM titles INNER JOIN publishers ON titles.pub_id = publishers.pub_id GROUP BY titles.pub_id HAVING publishers.state = 'CA'
في عمود تجميع حسب: ، تحديد أين من قائمة المجموعة و خيارات التلخيص. الاستعلام وعرض "مصمم" قم بإزالة الشرط من جملة HAVING في عبارة SQL ويضيفها إلى بند الموقع.
تغيير عبارة SQL لتضمين جملة الموقع بدلاً من ذلك:
SELECT titles.pub_id, AVG(titles.price) FROM titles INNER JOIN publishers ON titles.pub_id = publishers.pub_id WHERE publishers.state = 'CA' GROUP BY titles.pub_id