SAS-এ SQL Queries ব্যবহৃত হয় ডেটাবেস বা ডেটাসেট থেকে তথ্য রিট্রিভ (retrieve) করার জন্য। Subqueries এবং Complex SQL Queries ব্যবহার করে আপনি আরও জটিল বিশ্লেষণ এবং ডেটার মধ্যে সম্পর্ক খুঁজে বের করতে পারেন। সেক্ষেত্রে, Subqueries একটি SQL কুয়েরি এর ভিতরে অন্য SQL কুয়েরি ব্যবহার করার পদ্ধতি এবং Complex SQL Queries-এর মাধ্যমে একাধিক কুয়েরি একত্রে ব্যবহার করা হয়।
Subqueries in SAS
Subqueries হল একটি SQL কুয়েরির মধ্যে অন্য একটি কুয়েরি যা SELECT, INSERT, UPDATE, বা DELETE কুয়েরির অংশ হিসেবে কাজ করে। একটি Subquery মূল কুয়েরির মান বা ফলাফল প্রদান করে, যা পরে প্রধান কুয়েরির মধ্যে ব্যবহার করা হয়।
Subquery এর গঠন:
SELECT column1, column2
FROM table_name
WHERE column_name = (SELECT column_name FROM another_table WHERE condition);
এখানে:
- প্রথম কুয়েরি মূল ডেটাসেট বা টেবিল থেকে ডেটা নির্বাচন করবে।
- দ্বিতীয় কুয়েরি (Subquery) থেকে মান নির্বাচন করবে এবং এটি মূল কুয়েরির শর্ত হিসাবে ব্যবহৃত হবে।
উদাহরণ: Subquery ব্যবহার করে সেলের দাম নির্বাচন
proc sql;
select product_name, price
from products
where price = (select max(price) from products);
quit;
এখানে:
- প্রথম কুয়েরিটি
productsটেবিল থেকেproduct_nameএবংpriceনির্বাচন করবে। - Subquery (যে অংশটি
max(price)সিলেক্ট করছে) এই দামটি নির্বাচন করবে যেটি সব সেলের মধ্যে সর্বাধিক।
Complex SQL Queries in SAS
Complex SQL Queries হল SQL কুয়েরি যা একাধিক অংশ বা শর্ত নিয়ে গঠিত, যেমন JOIN, GROUP BY, HAVING, এবং ORDER BY। এই কুয়েরিগুলি ডেটার মধ্যে সম্পর্ক খুঁজে বের করতে এবং বিশ্লেষণ করতে ব্যবহৃত হয়।
১. JOIN (একাধিক টেবিল সংযুক্ত করা)
JOIN ব্যবহৃত হয় একাধিক টেবিলকে যুক্ত করার জন্য। এতে আপনি বিভিন্ন টেবিলের মধ্যে সম্পর্ক তৈরি করে একটি কম্বাইনড আউটপুট তৈরি করতে পারেন।
উদাহরণ: INNER JOIN ব্যবহার
proc sql;
select a.product_name, b.category_name
from products as a
inner join categories as b
on a.category_id = b.category_id;
quit;
এখানে:
INNER JOINদুটি টেবিলকে যুক্ত করছে, যেখানেproductsটেবিল এবংcategoriesটেবিলের মধ্যেcategory_idফিল্ডের মাধ্যমে সম্পর্ক তৈরি হয়েছে।
২. GROUP BY (গ্রুপিং ডেটা)
GROUP BY ব্যবহার করা হয় ডেটাকে নির্দিষ্ট ভেরিয়েবলের ভিত্তিতে গ্রুপ করার জন্য, এবং গ্রুপিংয়ের পরে aggregate functions যেমন SUM, AVG, COUNT, MAX, MIN ইত্যাদি ব্যবহার করা হয়।
উদাহরণ: GROUP BY এবং SUM ব্যবহার
proc sql;
select category_name, sum(price) as total_sales
from products
group by category_name;
quit;
এখানে:
GROUP BY category_name—category_nameএর ভিত্তিতে ডেটা গ্রুপ করা হয়েছে।SUM(price)— প্রতিটি ক্যাটাগরির জন্যpriceএর যোগফল বের করা হয়েছে।
৩. HAVING (গ্রুপ করার পরে শর্ত প্রয়োগ)
HAVING ব্যবহার করা হয় GROUP BY এর পর শর্ত প্রয়োগ করার জন্য। এটি শুধুমাত্র গ্রুপের উপর শর্ত পরীক্ষা করে।
উদাহরণ: HAVING ব্যবহার
proc sql;
select category_name, avg(price) as average_price
from products
group by category_name
having avg(price) > 100;
quit;
এখানে:
HAVING avg(price) > 100— গড় মূল্য ১০০ এর বেশি এমন গ্রুপগুলিই নির্বাচন করা হবে।
৪. ORDER BY (অর্ডারিং ডেটা)
ORDER BY ব্যবহার করা হয় ডেটা সাজানোর জন্য, যেমন আকারের (ascending) বা নিম্নলিখিত (descending) আকারে সাজানো।
উদাহরণ: ORDER BY ব্যবহার
proc sql;
select product_name, price
from products
order by price desc;
quit;
এখানে:
ORDER BY price desc— দাম অনুসারে ডেটা কম থেকে বেশি (descending) অর্ডারে সাজানো হবে।
Complex SQL Query Example
একটি জটিল SQL কুয়েরি যা JOIN, GROUP BY, HAVING, এবং ORDER BY ব্যবহার করে:
proc sql;
select c.category_name, p.product_name, sum(p.price) as total_sales
from products as p
inner join categories as c
on p.category_id = c.category_id
group by c.category_name, p.product_name
having sum(p.price) > 500
order by total_sales desc;
quit;
এখানে:
INNER JOINদুটি টেবিলকে একত্রিত করেছেproductsএবংcategories।GROUP BYব্যবহার করেcategory_nameএবংproduct_nameভিত্তিতে গ্রুপিং করা হয়েছে।HAVINGদ্বারা শুধুমাত্র সেই গ্রুপগুলি নির্বাচন করা হয়েছে, যেগুলোর মোট বিক্রয় ৫০০ এর বেশি।ORDER BY total_sales descদ্বারা মোট বিক্রয়ের ভিত্তিতে ডেটা ডাউন (descending) অর্ডারে সাজানো হয়েছে।
সারাংশ
SAS-এ Subqueries এবং Complex SQL Queries ব্যবহার করে আপনি ডেটা বিশ্লেষণ এবং সম্পর্কের মধ্যে বিভিন্ন গভীরতা অনুসন্ধান করতে পারেন:
- Subqueries একটি কুয়েরির মধ্যে অন্য কুয়েরি ব্যবহার করে আরও বিস্তারিত ফলাফল প্রদান করে।
- Complex SQL Queries যেমন JOIN, GROUP BY, HAVING, এবং ORDER BY একাধিক টেবিল এবং শর্তের মাধ্যমে ডেটার সঠিক বিশ্লেষণ তৈরি করে।
এই কুয়েরিগুলি ডেটার ভিতরে লুকানো সম্পর্ক খুঁজে বের করতে এবং জটিল বিশ্লেষণ সম্পাদন করতে সহায়তা করে।
Read more