انتقل إلى محتوى الدرس

Using Aggregate Aliases in HAVING الأسماء المستعارة داخل HAVING

استخدم الأسماء المستعارة للدوال التجميعية داخل جملة HAVING في MySQL وتعرّف على قاعدة التوافق القياسية.
1 صفوف تعليمية
MySQL
7 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يدعم محرك MySQL 8 ميزة مريحة تتيح الإشارة إلى الاسم المستعار المعرّف بـ AS للدالة التجميعية في SELECT مباشرةً داخل جملة HAVING.

  • اختصار الكود في MySQL: يمكنك كتابة SUM(total_usd) AS total_spent في العرض ثم كتابة HAVING total_spent >= 500 دون إعادة كتابة الدالة.
  • ملاحظة التوافق القياسي: في معيار ISO SQL الصارم (وبعض المحركات الأخرى)، تُنفَّذ HAVING منطقياً قبل ربط أسماء SELECT المستعارة؛ لذا فإن كتابة الدالة الصريحة HAVING SUM(total_usd) >= 500 يضمن عمل الاستعلام على كافة قواعد البيانات.

داخل بيئة MySQL 8 يعمل كلا الأسلوبين بنفس الكفاءة وخطة التنفيذ تماماً.

SQL
-- Using SELECT aggregate aliases inside HAVING in MySQL 8
SELECT product_id,
       COUNT(*)    AS review_count,
       AVG(rating) AS avg_rating
FROM product_reviews
GROUP BY product_id
HAVING review_count >= 10
   AND avg_rating >= 4.5
ORDER BY avg_rating DESC;