شرح صفوف ومحتوى الفقرة
تُكتب جملة 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;