تتيح تصفية نتائج التجميع الناتجة عن GROUP BY. وهي تشبه جملة WHERE، إلا أن الفرق هو أن WHERE تُنفَّذ قبل التجميع، بينما تُنفَّذ HAVING بعده.
يمكن الإشارة إلى نتائج التجميع من جملة SELECT داخل جملة HAVING باستخدام الاسم المستعار لها. كما يمكن لجملة HAVING أيضًا التصفية بناءً على نتائج تجميعات إضافية لا تُعاد ضمن نتائج الاستعلام.
إذا كان لديك جدول sales على النحو التالي:
CREATE TABLE sales
(
region String,
salesperson String,
amount Float64
)
ORDER BY (region, salesperson);
يمكنك الاستعلام عنه على النحو التالي:
SELECT
region,
salesperson,
sum(amount) AS total_sales
FROM sales
GROUP BY
region,
salesperson
HAVING total_sales > 10000
ORDER BY total_sales DESC;
سيعرض هذا مندوبي المبيعات الذين يزيد إجمالي مبيعاتهم على 10,000 في منطقتهم.
لا يمكن استخدام HAVING إذا لم تُجرَ أي عملية تجميع. استخدم WHERE بدلًا منه. آخر تعديل في ٢٥ يونيو ٢٠٢٦