GROUP BY এবং HAVING SQL কুয়েরি ক্লজ দুইটি গুরুত্বপূর্ণ ফিচার যা ডাটাবেসের ডাটা গ্রুপিং এবং ফিল্টারিং করতে ব্যবহৃত হয়। এগুলি একসাথে ব্যবহার করলে, আপনি একটি টেবিলের ডাটাকে নির্দিষ্ট কলাম অনুসারে গ্রুপ করতে এবং গ্রুপের উপর ভিত্তি করে শর্ত প্রয়োগ করতে পারবেন।
GROUP BY ক্লজ
GROUP BY কুয়েরি একটি টেবিলের ডাটাকে একটি বা একাধিক কলাম ভিত্তিতে গ্রুপ করে, এবং আপনি এই গ্রুপগুলোর উপর গণনা বা অন্যান্য অপারেশন প্রয়োগ করতে পারেন (যেমন COUNT, SUM, AVG, MIN, MAX ইত্যাদি)।
উদাহরণ: GROUP BY ব্যবহার
ধরা যাক, আপনার একটি employees টেবিল আছে, যেটি নিম্নরূপ:
| id | name | department | salary |
|---|---|---|---|
| 1 | Alice | HR | 5000 |
| 2 | Bob | IT | 7000 |
| 3 | Charlie | HR | 6000 |
| 4 | David | IT | 8000 |
| 5 | Eva | HR | 5500 |
এখন, আপনি যদি প্রতিটি বিভাগে কর্মীদের গড় বেতন বের করতে চান, তবে GROUP BY ব্যবহার করতে হবে।
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department;
এটি প্রতি বিভাগ (HR, IT) এর জন্য গড় বেতন হিসাব করবে।
HAVING ক্লজ
HAVING কুয়েরি GROUP BY এর পরে ব্যবহৃত হয় এবং এটি গ্রুপের উপর শর্ত প্রয়োগ করতে ব্যবহৃত হয়। মূলত, HAVING হল WHERE ক্লজের সমকক্ষ, তবে WHERE কেবল রেকর্ডের ফিল্টারিংয়ের জন্য ব্যবহৃত হয়, আর HAVING গ্রুপের উপর শর্ত প্রয়োগ করে।
উদাহরণ: GROUP BY এবং HAVING ব্যবহার
ধরা যাক, আপনি এখন এমন বিভাগের গড় বেতন দেখতে চান, যেগুলোর গড় বেতন 6000 এর বেশি।
SELECT department, AVG(salary) AS average_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 6000;
এখানে, HAVING ক্লজটি GROUP BY গ্রুপগুলোর গড় বেতন 6000 এর বেশি এমন বিভাগের তথ্য ফিরিয়ে দেবে।
GROUP BY এবং HAVING এর মধ্যে পার্থক্য
- GROUP BY: এটি ডাটাকে গ্রুপ করে (একাধিক রেকর্ডকে একত্রিত করে) এবং গ্রুপগুলোতে গণনা বা অন্যান্য অপারেশন চালায়।
- HAVING: এটি GROUP BY এর পর ব্যবহৃত হয় এবং গ্রুপের উপর শর্ত প্রয়োগ করে (যেমন, গ্রুপের গড়, মোট বা অন্যান্য অপারেশনের উপর শর্তাবলী প্রয়োগ করা)।
সারাংশ
GROUP BY এবং HAVING SQL কুয়েরি দুটি খুবই শক্তিশালী ফিচার, যা ডাটাকে গ্রুপ করার এবং গ্রুপের উপর শর্ত প্রয়োগ করার জন্য ব্যবহৃত হয়। GROUP BY টেবিলের ডাটা গ্রুপ করতে সাহায্য করে, এবং HAVING গ্রুপ করা ডাটার ওপর শর্ত প্রয়োগ করতে ব্যবহৃত হয়।
Read more