আজকে আমাদের আলোচনার বিষয় – SQL এর অ্যাগ্রিগেট ফাংশনের ব্যবহারের বর্ণনা যা অধ্যায়-৫ এর ডাটাবেস ম্যানেজমেন্ট সিস্টেম এ অন্তর্ভুক্ত। এটি চার বছর মেয়াদি কোর্সের আলোকে লেখা হয়েছে। ডাটাবেস ম্যানেজমেন্ট সিস্টেমের বিভিন্ন ইংরেজি বই অনুসরণ করেই রচনা করা হয়েছে। ইঞ্জিনিয়ারিং বিষয়ের যে-কোন বই সম্পূর্ণরূপে বাংলা ভাষায় রচনা করা সম্ভব নয়। এজন্যে কিছু কিছু ইংরেজি শব্দকে বাংলায় অনুবাদ করা হয়নি। ফলে ছাত্রছাত্রীদের হয়ত কিছুটা অসুবিধা হতে পারে।
SQL এর অ্যাগ্রিগেট ফাংশনের ব্যবহারের বর্ণনা
SQL এর অ্যাগ্রিগেট ফাংশনের ব্যবহারের বর্ণনা
অ্যাগ্রিগেট ফাংশন: অ্যাগ্রিগেট ফাংশন বা গ্রুপ ফাংশন একাধিক রো’-এর বা একাধিক মানের উপর কার্যকরী হয় এবং ফলাফলকে সমন্বিত আকারে বা সিঙ্গেল আকারে প্রকাশ করে। অর্থাৎ এ ফাংশনগুলো এক জাতীয় ডাটা সেটের উপর কাজ করে উদাহরণ হিসেবে SUM, AVG দু’টি গ্রুপ ফাংশনকে উল্লেখ করা যায়। এখানে SUM ফাংশনটি একাধিক ‘রো’-এর ভ্যালু যোগফল প্রকাশ করে। আরার AVG একাধিক রো’-এর ভ্যালুর গড় তৈরি করে।
গ্রুপ ফাংশন সাধারণত DISTINCT এবং ALL অপশন দু’টিকে বিবেচনা করে।
অ্যাগ্রিগেট ফাংশন বা গ্রুপ ফাংশনগুলো হচ্ছে-
ক. Sum ফাংশন
খ. Avg ফাংশন
গ. Max ফাংশন
ঘ. Min ফাংশন
ঙ. Count ফাংশন
ফাংশন | কার্যক্রম |
SUM | বিভিন্ন রাশির যোগফল নির্ণয় করে। |
AVG | রাশিগুলো গড় নির্ণয় করে। |
MAX | রাশিমালার মধ্যে বৃহত্তম রাশি নির্ণয় করে। |
MIN | রাশিমালার মধ্যে ক্ষুদ্রতম রাশি নির্ণয় করে। |
COUNT | রাশিমালার সংখ্যা গনণা করে। |
ক. SUM ফাংশনঃ এ ফাংশন এর সাহায্যে বিভিন্ন রাশির যোগফল নির্ণয় করা যায়।
Syntax:
SUM([DISTINCT!ALL]n)
উদাহরণ-১: ধরি, emp টেবিল থেকে প্রত্যেক ডিপার্টমেন্টের বেতনের যোগফল বের করতে হবে এবং সাথে Dept. টেবিল থেকে সংশ্লিষ্ট ডিপার্টমেন্টের নাম নির্বাচন করতে হবে। এজন্য নিম্নরূপ কমান্ড প্রয়োগ করে ফলাফল লক্ষ করিঃ
Select dname Department, SUM (sal) “Dept. wise salary”
From emp, dept
Where emp. deptno = dept.deptno
Group by dname;
ফলাফল:
DEPARIMENT |
DEPT. WISE SALARY
|
ACCOUNTING | 8750 |
RESEARCH | 11875 |
SALES | 9400 |
উদাহরণ-২ঃ ধরি, emp টেবিলের সকল কর্মচারী/কর্মকর্তাদের Salary-এর যোগফল দেখাতে হবে। এজন্য নিম্নরূপ কমান্ড প্রয়োগ করে ফলাফল লক্ষ করি :
SQL> Select SUN (Sal) From emp;
SUM (SAL)
30025
খ. AVG ফাংশনঃ এ ফাংশন এর সাহায্যে বিভিন্ন রাশিগুলো গড় নির্ণয় করে।
Syntax:
AVG([DISTINCT/ALL]n)
উদাহরণঃ ধরি, emp টেবিলে ডিপার্টমেন্ট নম্বর অনুসারে প্রত্যেক ডিপার্টমেন্টের sal কলামের গড় নির্ণয় করার জন্য নিম্নরূপ কমান্ড প্রয়োগ করে ফলাফল লক্ষ করিঃ
SQL> Select deptno, AVG (Sal) “Average”
2 From emp
3 Group by deptno
DEPTNO | Average |
10 | 2916.66667 |
20 | 2375 |
30 | 1566.66667 |
গ. MAX ফাংশন : এ ফাংশনটি এক্সপ্রেশনে উল্লেখিত সর্বোচ্চ সংখ্যাটি প্রকাশ করে। এক্সপ্রেশনে একই জাতীয় ডাটা হতে হবে এবং তাদেরকে কমা (,) দিয়ে পৃথক রাখতে হবে। এ ডাটা নিউমেরিক বা date টাইপ হলে সর্বশেষ date টি প্রকাশ করে। ডাটা ক্যারেক্টার এক্সপ্রেশন হলে এদের মধ্যে সর্বোচ্চ ASCII কোড বিশিষ্ট ডাটাকে প্রকাশ করে।
Syntax:
MAX([DISTINCT/ALL]n)
OR
MAX(expression)
উদাহরণঃ ধরি, emp টেবিলে প্রত্যেক ডিপার্টমেন্টে যে সকল কর্মচারীগণ বেশি salary পায়, তাদের নাম, ডিপার্টমেন্ট নম্বর এবং salary নির্বাচন করতে হবে। এজন্য নিম্নরূপ কমান্ড প্রয়োগ করে ফলাফল লক্ষ করিঃ
SQL> Select ename, deptno, sal from emp
2 Where (Sal, deptno) IN
3 (Select max (sal), deptno
4 from emp
5 group by deptno
ফলাফল:
ENAME | DEPTNO | SAL |
BLAKE | 30 | 2850 |
JONES | 20 | 3975 |
KING | 10 | 5000 |
ঘ. MIN ফাংশনঃ এ ফাংশনটি এক্সপ্রেশনে উল্লেখিত ক্ষুদ্রতম সংখ্যাটি প্রকাশ করে।
এক্সপ্রেশনে একই জাতীয় ডাটা হতে হবে এবং তাদেরকে কমা (,) দিয়ে পৃথক রাখতে হবে। এ ডাটা নিউমারিক বা date টাইপ হলে সবচেয়ে আগের date টি প্রকাশ করে। ডাটা ক্যারেক্টার টাইপ হলে এদের মধ্যে সর্বনিম্ন ASCII কোড বিশিষ্ট ডাটাকে প্রকাশ করে।
Syntax:
MIN([DISTINCT/ALL]n)
OR
MIN(expression)
উদাহরণ: ধরি, emp টেবিলে প্রত্যেক ডিপার্টমেন্টে যে সকল কর্মচারীগণ সর্বনিম্ন salary পায়, তাদের নাম, ডিপার্টমেন্ট নম্বর এবং salary নির্বাচন করতে হবে। এজন্য নিম্নরূপ কমান্ড প্রয়োগ করে ফলাফল লক্ষ করি ৪
SQL> Select ename, deptno, sal
2 from emp
3 Where (sal, deptno) IN (select MIN (sal), deptno
4 from emp
5 group by deptno;
ফলাফল:
ENAME | DEPTNO | SAL |
SMITH | 20 | 800 |
JAMES | 30 | 950 |
MILLER | 10 | 1300 |
ঙ. COUNT ফাংশন : এ ফাংশনটি নির্বাচিত রেকর্ড, ভ্যালু বা কোন ইভেন্টের সংখ্যা নির্ধারণ করে এবং নির্বাচিত ভ্যালুগুলোর সংখ্যা ফলাফল হিসেবে প্রকাশ করে।
Syntax:
COUNT([DISTINCT/ALL]n)
OR
COUNT (expression)
উদাহরণ: ধরি, emp টেবিলে কত জন কর্মচারী/কর্মকর্তা আছে, তা জানা প্রয়োজন হবে। এজন্য নিম্নরূপ কমান্ড প্রয়োগ করে ফলাফল লক্ষ করি:
SQL> Select count (ename) “Total Employee”
2 from emp
ফলাফল:
Total Employee
14
আরও দেখুনঃ