DB2-এ Aggregation এবং Grouping SQL কুয়েরি লেখার জন্য গুরুত্বপূর্ণ টুলস, যা ডেটা বিশ্লেষণ এবং সংক্ষেপণের জন্য ব্যবহৃত হয়। এগুলি ব্যবহৃত হয় যখন আপনি ডেটাবেস থেকে একাধিক রেকর্ডের উপর ভিত্তি করে তথ্য সংক্ষেপিত বা সামগ্রিক তথ্য পাওয়ার চেষ্টা করেন।
Aggregation হল ডেটাবেসের একাধিক রেকর্ড থেকে একটি একক মান বের করার প্রক্রিয়া। DB2 SQL এ কিছু গুরুত্বপূর্ণ Aggregation Functions রয়েছে, যা ব্যবহৃত হয়:
ধরা যাক আমাদের কাছে একটি Sales টেবিল আছে যেখানে বিক্রয়ের তথ্য রাখা আছে, এবং আমরা বিক্রয়ের মোট পরিমাণ জানার চেষ্টা করছি।
SELECT SUM(sale_amount) AS total_sales
FROM Sales;
এখানে, SUM()
ফাংশনটি বিক্রয়ের পরিমাণের যোগফল বের করবে।
Grouping ব্যবহার করা হয় ডেটা সেটকে কিছু নির্দিষ্ট মান বা ক্যাটাগরির ভিত্তিতে ভাগ করার জন্য। এটি একটি গুরুত্বপূর্ণ টুল যেখানে একাধিক রেকর্ডের মধ্যে সংক্ষেপিত ফলাফল পেতে হয়, তবে সেটি নির্দিষ্ট কলামের উপর ভিত্তি করে ভাগ করতে হয়।
GROUP BY ক্লজ ব্যবহার করে DB2-এ গ্রুপিং করা হয়। সাধারণত, গ্রুপিং অ্যাগ্রিগেট ফাংশনগুলোর সাথে ব্যবহার করা হয়।
ধরা যাক, আমরা Sales টেবিলের মধ্যে প্রতিটি বিক্রয় প্রতিনিধি (Salesperson) এর মোট বিক্রয়ের পরিমাণ জানাতে চাই। আমরা এটি GROUP BY
ক্লজ ব্যবহার করে করতে পারি:
SELECT salesperson_id, SUM(sale_amount) AS total_sales
FROM Sales
GROUP BY salesperson_id;
এখানে, GROUP BY salesperson_id
দ্বারা প্রতিটি বিক্রয় প্রতিনিধির জন্য একটি গ্রুপ তৈরি করা হবে এবং প্রতিটি গ্রুপের জন্য SUM()
ফাংশনটি প্রয়োগ করা হবে।
অনেক সময় Aggregation এবং Grouping একসাথে ব্যবহার করা হয় যখন আপনি কিছু ক্যাটাগরি বা গ্রুপ অনুযায়ী ডেটা সংক্ষেপণ করতে চান। এই দুইটি একসাথে ব্যবহার করলে আপনি ভিন্ন ভিন্ন গ্রুপের জন্য অ্যাগ্রিগেটেড ফলাফল পেতে পারেন।
ধরা যাক, আমরা Sales টেবিল থেকে বিক্রয়ের পরিমাণ এবং প্রতিটি বিক্রয় প্রতিনিধির গড় বিক্রয় জানাতে চাই, এবং গ্রুপিং করতে চাই বিক্রয়ের মাসের ভিত্তিতে।
SELECT salesperson_id, EXTRACT(MONTH FROM sale_date) AS sale_month,
SUM(sale_amount) AS total_sales, AVG(sale_amount) AS avg_sales
FROM Sales
GROUP BY salesperson_id, EXTRACT(MONTH FROM sale_date);
এখানে:
GROUP BY salesperson_id, EXTRACT(MONTH FROM sale_date)
এই অংশটি বিক্রয়ের প্রতিনিধির সাথে মাস ভিত্তিক গ্রুপিং তৈরি করবে।SUM()
এবং AVG()
ফাংশন ব্যবহার করে, আমরা প্রতিটি গ্রুপের মোট বিক্রয় এবং গড় বিক্রয় জানতে পারবো।HAVING ক্লজ ব্যবহার করা হয় GROUP BY কুয়েরির ফলাফলে শর্ত আরোপ করার জন্য। যখন আপনি গ্রুপিংয়ের পর ফলাফল ফিল্টার করতে চান, তখন HAVING ক্লজ ব্যবহার করা হয়। এটি WHERE ক্লজের মতো কাজ করে, তবে WHERE শুধুমাত্র সিংগেল রেকর্ডে কাজ করে, আর HAVING গ্রুপেড রেকর্ডে কাজ করে।
ধরা যাক, আমরা চাই শুধুমাত্র তাদেরকে দেখাতে, যাদের বিক্রয়ের পরিমাণ ১০,০০০ টাকা বা তার বেশি।
SELECT salesperson_id, SUM(sale_amount) AS total_sales
FROM Sales
GROUP BY salesperson_id
HAVING SUM(sale_amount) >= 10000;
এখানে, HAVING SUM(sale_amount) >= 10000
গ্রুপগুলির মধ্যে শুধুমাত্র সেইগুলো ফেরত দেবে, যেগুলির মোট বিক্রয়ের পরিমাণ ১০,০০০ টাকা বা তার বেশি।
COUNT()
, SUM()
, AVG()
, MIN()
, MAX()
ফাংশন)।GROUP BY
ক্লজ)।GROUP BY
এর ফলাফলকে ফিল্টার করতে ব্যবহৃত হয়, বিশেষ করে যখন গ্রুপগুলির উপর অ্যাগ্রিগেট ফাংশন প্রয়োগ করা হয়।DB2-এ Aggregation এবং Grouping ব্যবহার করলে আপনি বিশাল ডেটাসেটকে সহজে বিশ্লেষণ এবং সংক্ষেপণ করতে পারবেন, যা ব্যবসায়ের সিদ্ধান্ত নেওয়ার ক্ষেত্রে গুরুত্বপূর্ণ ভূমিকা পালন করে।
common.read_more