✏️ Explanatory Question
Aggregation ও filtering-এ ব্যবহৃত দুটি গুরুত্বপূর্ণ SQL clause।
একই মানের data-কে group-এ ভাগ করতে ব্যবহৃত হয়, সাধারণত aggregate function (SUM, AVG, COUNT)-এর সঙ্গে।
GROUP BY-এর পর তৈরি হওয়া group-এর উপর শর্ত (filter) প্রয়োগ করতে ব্যবহৃত হয়। WHERE clause group-এর উপর কাজ করতে পারে না।
| বৈশিষ্ট্য | GROUP BY | HAVING |
|---|---|---|
| উদ্দেশ্য | Row group করা | Group filter করা |
| Aggregate function | সঙ্গে ব্যবহৃত হয় | সঙ্গে শর্তে ব্যবহৃত হয় |
| প্রয়োগ | Row-এর উপর | Group-এর উপর |
| WHERE-এর সাথে সম্পর্ক | WHERE-এর পরে আসে | GROUP BY-এর পরে আসে |
-- প্রতিটি department-এর কর্মী সংখ্যা
SELECT dept_id, COUNT(*) AS total
FROM Employee
GROUP BY dept_id;
-- শুধু সেইসব department যেগুলিতে ৫-এর বেশি কর্মী আছে
SELECT dept_id, COUNT(*) AS total
FROM Employee
GROUP BY dept_id
HAVING COUNT(*) > 5;