HAVING (HAVING)
اینجا «دستور HAVING» را می بینی. «HAVING» وقتی کاربرد دارد که با «گروه بندی (GROUP BY)» کار می کنی و می خواهی گروه ها را فیلتر کنی. «تابع تجمعی (Aggregate)» یعنی محاسبه روی چند ردیف مثل COUNT یا SUM.
HAVING چه کار می کند؟
برخلاف WHERE که ردیف ها را فیلتر می کند، HAVING نتیجه گروه ها را فیلتر می کند. مثل این که کلاس هایی با بیش از 5 دانش آموز را نگه داریم.
مثال 1: کشورهایی با بیش از 5 مشتری
SELECT COUNT(CustomerID),
Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;
مثال 2: فیلتر با HAVING و سپس مرتب سازی
SELECT COUNT(CustomerID),
Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;
نکته: ستون های خارج از توابع تجمعی باید داخل GROUP BY باشند. اول گروه بندی انجام می شود، سپس HAVING اعمال می شود.
گام های عملی استفاده از HAVING
- ستون های خروجی را در SELECT بنویس.
- جدول را با FROM مشخص کن.
- با GROUP BY گروه ها را بساز.
- شرط را در HAVING روی گروه ها بگذار.
- در صورت نیاز با ORDER BY مرتب کن.
پیوندهای مرتبط
مرور GROUP BY برای گروه بندی. تفاوت با WHERE را هم ببین. راهنمای دستور HAVING همیشه در دسترس است.
جمع بندی سریع
- HAVING گروه ها را فیلتر می کند، نه تک ردیف ها.
- همیشه بعد از GROUP BY می آید.
- با توابع تجمعی مثل COUNT بهتر می درخشد.
- می توانی بعدش ORDER BY بزنی.