PROC SQL হল SAS-এর একটি অত্যন্ত শক্তিশালী টুল যা SQL (Structured Query Language) ব্যবহার করে ডেটা কুয়েরি করার জন্য ব্যবহৃত হয়। SQL ব্যবহার করে আপনি ডেটাসেট থেকে তথ্য নির্বাচন (select), ডেটা ফিল্টার (filter), একত্রিত (join), গ্রুপ (group) এবং অর্ডার (order) করতে পারেন। এটি SQL-এর স্ট্যান্ডার্ড কুয়েরি ভাষার মাধ্যমে ডেটা বিশ্লেষণ এবং ম্যানিপুলেশন করার একটি সহজ এবং কার্যকরী উপায়।
PROC SQL এর মূল গঠন
PROC SQL;
<SQL_query>;
QUIT;
এখানে:
<SQL_query>: এটি আপনার SQL কুয়েরি হবে, যেমনSELECT,FROM,WHERE,GROUP BY, ইত্যাদি।QUIT;: SQL প্রসেস শেষ করার জন্যQUITকমান্ড ব্যবহার করা হয়।
উদাহরণ: PROC SQL এর মাধ্যমে ডেটা কুয়েরি করা
১. SELECT কুয়েরি ব্যবহার করা
SELECT কুয়েরি ব্যবহার করে আপনি ডেটাসেট থেকে নির্দিষ্ট ভেরিয়েবল নির্বাচন করতে পারেন।
উদাহরণ:
PROC SQL;
SELECT Name, Age, Salary
FROM work.employees;
QUIT;
এখানে:
SELECT Name, Age, Salary:employeesডেটাসেট থেকেName,Age, এবংSalaryভেরিয়েবলগুলিকে নির্বাচন করা হয়েছে।FROM work.employees:work.employeesডেটাসেট থেকে ডেটা নেওয়া হচ্ছে।
২. WHERE ক্লজ ব্যবহার করে শর্তযুক্ত কুয়েরি
WHERE ক্লজ ব্যবহার করে আপনি শর্ত অনুযায়ী ডেটা ফিল্টার করতে পারেন।
উদাহরণ:
PROC SQL;
SELECT Name, Age, Salary
FROM work.employees
WHERE Age > 30 AND Salary > 50000;
QUIT;
এখানে:
WHERE Age > 30 AND Salary > 50000: এই শর্তের মাধ্যমে শুধুমাত্র সেই রেকর্ডগুলো নির্বাচন করা হচ্ছে যেখানে বয়স ৩০ এর বেশি এবং স্যালারি ৫০,০০০ এর বেশি।
৩. ORDER BY ব্যবহার করে ডেটা সাজানো
ORDER BY ক্লজ ব্যবহার করে আপনি ডেটা সাজাতে পারেন (অ্যালফাবেটিক্যাল বা সংখ্যা অনুযায়ী)।
উদাহরণ:
PROC SQL;
SELECT Name, Age, Salary
FROM work.employees
ORDER BY Salary DESC;
QUIT;
এখানে:
ORDER BY Salary DESC: ডেটাকেSalaryভেরিয়েবলের মান অনুযায়ী নাম্বার অনুযায়ী সাজানো হবে, এবংDESCনির্দেশনা দেওয়া হয়েছে যাতে স্যালারি উচ্চ থেকে নিম্ন সাজানো হয়।
৪. DISTINCT ব্যবহার করে ইউনিক ভ্যালু নির্বাচন
DISTINCT কুয়েরি ব্যবহার করে আপনি একটি ভেরিয়েবলের মধ্যে পুনরাবৃত্তি মানগুলো বাদ দিয়ে ইউনিক (অদ্বিতীয়) মান নির্বাচন করতে পারেন।
উদাহরণ:
PROC SQL;
SELECT DISTINCT Department
FROM work.employees;
QUIT;
এখানে:
DISTINCT Department: শুধুমাত্রDepartmentভেরিয়েবলের ইউনিক (অদ্বিতীয়) মানগুলো নির্বাচন করা হচ্ছে।
৫. GROUP BY এবং HAVING ব্যবহার করে গ্রুপিং এবং শর্ত প্রয়োগ
GROUP BY ক্লজটি একটি ভেরিয়েবলের মানের ভিত্তিতে ডেটাকে গ্রুপ করতে ব্যবহৃত হয় এবং HAVING ক্লজটি গ্রুপের ওপর শর্ত প্রয়োগ করতে ব্যবহৃত হয়।
উদাহরণ:
PROC SQL;
SELECT Department, AVG(Salary) AS AvgSalary
FROM work.employees
GROUP BY Department
HAVING AVG(Salary) > 60000;
QUIT;
এখানে:
GROUP BY Department: ডেটাকেDepartmentভেরিয়েবলের উপর ভিত্তি করে গ্রুপ করা হচ্ছে।HAVING AVG(Salary) > 60000: প্রতিটিDepartmentএর গড় স্যালারি ৬০,০০০ এর বেশি হলে সেগুলি দেখানো হবে।
৬. JOIN ব্যবহার করে একাধিক টেবিল একত্রিত করা
JOIN ক্লজ ব্যবহার করে আপনি একাধিক টেবিলের ডেটা একত্রিত করতে পারেন। এখানে আমরা INNER JOIN, LEFT JOIN, RIGHT JOIN, এবং FULL JOIN ব্যবহার করতে পারি।
উদাহরণ: INNER JOIN ব্যবহার
PROC SQL;
SELECT a.Name, a.Age, b.Department
FROM work.employees a
INNER JOIN work.departments b
ON a.DepartmentID = b.DepartmentID;
QUIT;
এখানে:
- INNER JOIN:
work.employeesএবংwork.departmentsটেবিলেরDepartmentIDভেরিয়েবলের উপর ভিত্তি করে একত্রিত হচ্ছে। aএবংbহল টেবিলের এলিয়াস (alias), যা কোডকে আরও সহজ ও সংক্ষিপ্ত করে।
৭. CREATE TABLE এবং INSERT INTO ব্যবহার করে নতুন টেবিল তৈরি
CREATE TABLE ব্যবহার করে আপনি নতুন টেবিল তৈরি করতে পারেন এবং INSERT INTO ব্যবহার করে ডেটা সেই টেবিলে যোগ করতে পারেন।
উদাহরণ: CREATE TABLE এবং INSERT INTO ব্যবহার
PROC SQL;
CREATE TABLE work.new_employees AS
SELECT Name, Age, Salary
FROM work.employees
WHERE Salary > 50000;
QUIT;
এখানে:
CREATE TABLE work.new_employees: নতুনnew_employeesটেবিল তৈরি করা হচ্ছে।SELECT Name, Age, Salary FROM work.employees WHERE Salary > 50000: স্যালারি ৫০,০০০ এর বেশি এমন কর্মীদের তথ্যnew_employeesটেবিলে সেভ করা হচ্ছে।
সারাংশ
SAS-এ PROC SQL একটি শক্তিশালী টুল, যা আপনাকে SQL ব্যবহার করে ডেটার উপর বিভিন্ন প্রক্রিয়া সম্পাদন করতে সহায়তা করে। SELECT, WHERE, ORDER BY, DISTINCT, GROUP BY, HAVING, JOIN ইত্যাদি কুয়েরি স্টেটমেন্ট ব্যবহার করে আপনি ডেটা ফিল্টার, সাজানো, গ্রুপ করা এবং একত্রিত করতে পারেন। SQL কুয়েরি ব্যবহারের মাধ্যমে ডেটা বিশ্লেষণ আরও সহজ এবং দ্রুত হয়, যা SAS-এর বিশ্লেষণ ক্ষমতা বৃদ্ধি করে।
Read more