Teradata SQL এর বিভিন্ন কমান্ড এবং ক্লজ (clauses) ব্যবহার করে ডেটা ফিল্টার করা এবং সংগঠিত করা যায়। এর মধ্যে WHERE, GROUP BY, এবং HAVING ক্লজ বেশ গুরুত্বপূর্ণ। এই ক্লজগুলো ব্যবহৃত হয় ডেটার উপর শর্ত আরোপ করতে, গ্রুপিং করতে এবং গ্রুপের উপর শর্ত আরোপ করতে। নিচে প্রতিটি ক্লজের ব্যাখ্যা দেওয়া হলো:
WHERE Clause
WHERE ক্লজ ব্যবহৃত হয় রেকর্ড বা রো (row) নির্বাচন করার জন্য যেগুলোর উপর নির্দিষ্ট শর্ত বা ফিল্টার প্রয়োগ করা হয়। এটি ডেটাবেস থেকে শুধুমাত্র প্রয়োজনীয় ডেটা নিয়ে আসে এবং ফলস্বরূপ কম তথ্য পাওয়া যায়, যা কার্যকরী বিশ্লেষণের জন্য প্রয়োজনীয়।
Syntax:
SELECT column1, column2
FROM table_name
WHERE condition;
উদাহরণ:
ধরা যাক, আপনার একটি টেবিল রয়েছে যার নাম employees এবং সেখানে কর্মচারীদের নাম এবং তাদের বয়স সংরক্ষিত আছে। আপনি যদি ৩০ বছর বা তার বেশি বয়সী কর্মচারীদের নাম দেখতে চান, তাহলে কোডটি হবে:
SELECT name, age
FROM employees
WHERE age >= 30;
এখানে, WHERE age >= 30 শর্তটি ফিল্টার করবে এবং ৩০ বছরের বেশি বয়সী কর্মচারীদের ডেটা দেখাবে।
GROUP BY Clause
GROUP BY ক্লজ ব্যবহার করা হয় ডেটাকে গ্রুপ করার জন্য, সাধারণত অ্যাগ্রিগেট ফাংশনের (যেমন COUNT, SUM, AVG, MAX, MIN) সাথে। এটি নির্দিষ্ট কলামের ভিত্তিতে ডেটাকে গ্রুপ করে এবং গ্রুপভিত্তিক সারণী তৈরি করে।
Syntax:
SELECT column1, aggregate_function(column2)
FROM table_name
GROUP BY column1;
উদাহরণ:
আপনার employees টেবিলের মধ্যে প্রতি বিভাগের (department) কর্মচারীদের মোট সংখ্যা জানার জন্য আপনি GROUP BY ক্লজ ব্যবহার করতে পারেন:
SELECT department, COUNT(*)
FROM employees
GROUP BY department;
এখানে, GROUP BY department ক্লজ বিভাগ অনুযায়ী কর্মচারীদের সংখ্যা গ্রুপ করবে এবং COUNT(*) ফাংশন দিয়ে প্রতিটি বিভাগের কর্মচারীর সংখ্যা দেখাবে।
HAVING Clause
HAVING ক্লজ ব্যবহার করা হয় GROUP BY এর সাথে গ্রুপগুলোর উপর শর্ত আরোপ করতে। এটি মূলত WHERE ক্লজের মতো কাজ করে, তবে HAVING গ্রুপগুলোর উপর শর্ত প্রয়োগ করে, যেখানে WHERE রো (row) গুলোর উপর শর্ত প্রয়োগ করে।
Syntax:
SELECT column1, aggregate_function(column2)
FROM table_name
GROUP BY column1
HAVING condition;
উদাহরণ:
আপনি যদি উপরের উদাহরণ থেকে শুধুমাত্র সেই বিভাগগুলো দেখতে চান যেখানে কর্মচারীর সংখ্যা ৫ এর বেশি, তাহলে HAVING ক্লজ ব্যবহার করতে হবে:
SELECT department, COUNT(*)
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
এখানে, HAVING COUNT(*) > 5 শর্তটি গ্রুপভিত্তিক ফিল্টার প্রয়োগ করবে এবং শুধুমাত্র সেই বিভাগগুলো দেখাবে যাদের কর্মচারী সংখ্যা ৫ বা তার বেশি।
WHERE, GROUP BY এবং HAVING এর মধ্যে পার্থক্য
- WHERE: ডেটা ফিল্টার করতে ব্যবহৃত হয়, এটি GROUP BY এর আগে প্রয়োগ করা হয় এবং রো (row) এর উপর শর্ত আরোপ করে।
- GROUP BY: ডেটাকে নির্দিষ্ট কলামের ভিত্তিতে গ্রুপ করে এবং সাধারণত অ্যাগ্রিগেট ফাংশনের সাথে ব্যবহৃত হয়।
- HAVING: গ্রুপের উপর শর্ত আরোপ করতে ব্যবহৃত হয়, এটি GROUP BY এর পরে প্রয়োগ করা হয় এবং সাধারণত অ্যাগ্রিগেট ফাংশনের ফলস্বরূপ শর্ত আরোপ করতে ব্যবহৃত হয়।
সারাংশ
- WHERE ক্লজ ডেটাকে ফিল্টার করে একাধিক রো এর মধ্যে শর্তের ভিত্তিতে ডেটা নির্বাচন করতে ব্যবহৃত হয়।
- GROUP BY ক্লজ ডেটাকে গ্রুপ করে এবং গ্রুপভিত্তিক বিশ্লেষণ বা অ্যাগ্রিগেট ফাংশন প্রয়োগ করতে ব্যবহৃত হয়।
- HAVING ক্লজ GROUP BY এর সাথে ব্যবহার করা হয় এবং গ্রুপগুলোর ওপর শর্ত আরোপ করে।
এই তিনটি ক্লজের সঠিক ব্যবহার ডেটা বিশ্লেষণে সাহায্য করে এবং একে অপরের সাথে একত্রে কার্যকরীভাবে কাজ করে।
Read more