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

Filtering Groups with HAVING تصفية المجموعات بجملة HAVING

رشّح المجموعات الملخصة بعد مرحلة GROUP BY باستخدام الشروط التجميعية داخل جملة HAVING.
1 صفوف تعليمية
MySQL
7 مشاهدة

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

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

تُكتب جملة HAVING مباشرةً بعد جملة GROUP BY (وقبل ORDER BY) لتصفية المجموعات الناتجة بناءً على قيم الدوال التجميعية.

  • الفحص بعد اكتمال التجميع: بعد أن تقسم GROUP BY الصفوف وتحسب الدوال التجميعية لكل مجموعة، تحتفظ HAVING فقط بالمجموعات التي يحقق شرطها القيمة الصائبة 1.
  • دمج عدة شروط تجميعية: يمكنك ربط أكثر من دالة تجميعية داخل HAVING باستخدام AND و OR و BETWEEN ومعاملات المقارنة القياسية.

تُستبعد أي مجموعة تفشل في تحقيق شرط HAVING من النتيجة النهائية للاستعلام.

SQL
-- Keep only categories with at least 5 products and high stock
SELECT category,
       COUNT(*)       AS product_count,
       SUM(stock_qty) AS total_stock
FROM products
GROUP BY category
HAVING COUNT(*) >= 5
   AND SUM(stock_qty) >= 100;