Exam-ready answer with definition, syntax, examples, output tables, GROUP BY usage, and conclusion.
SQL এ এগ্রিগেট অপারেটরস গুলি উদাহরণ সহযোগে বর্ণনা কর।
SQL-এ Aggregate Operators বা Aggregate Functions এমন function, যা একাধিক row-এর উপর calculation করে একটি single summary value return করে।
এগুলি সাধারণত report তৈরি, total হিসাব করা, average বের করা, maximum বা minimum value বের করা এবং কোনো table-এর records count করার জন্য ব্যবহার করা হয়।
সহজ ভাষায়: Aggregate function অনেকগুলি row-এর data নিয়ে একটি summary result দেয়। যেমন total salary, average marks, highest marks, lowest marks বা total students count করা।
Aggregate Function হলো SQL-এর built-in function, যা একটি column-এর multiple values-এর উপর calculation করে একটি single value return করে।
Definition: An aggregate function performs a calculation on a set of values and returns a single result value.
| Function | কাজ | Example Use |
|---|---|---|
| COUNT() | Row বা value-এর সংখ্যা গণনা করে | Total students count করা |
| SUM() | Numeric column-এর total যোগফল বের করে | Total salary বের করা |
| AVG() | Numeric column-এর average value বের করে | Average marks বের করা |
| MIN() | Column-এর smallest value বের করে | Lowest marks বের করা |
| MAX() | Column-এর largest value বের করে | Highest marks বের করা |
নিচের Student table ব্যবহার করে aggregate functions ব্যাখ্যা করা হলো:
| Roll_No | Name | Department | Marks | Fee |
|---|---|---|---|---|
| 101 | Rahul | Computer Science | 85 | 12000 |
| 102 | Riya | Commerce | 72 | 10000 |
| 103 | Karim | Computer Science | 90 | 12000 |
| 104 | Anita | Arts | 68 | 9000 |
| 105 | Suman | Commerce | 80 | 10000 |
COUNT() function table-এর rows বা column-এর non-null values-এর সংখ্যা গণনা করে। এটি total records count করার জন্য ব্যবহৃত হয়।
SELECT COUNT(column_name)
FROM table_name;
SELECT COUNT(*) AS Total_Students
FROM Student;
| Total_Students |
|---|
| 5 |
এখানে Student table-এ মোট 5টি record আছে, তাই output 5 এসেছে।
SELECT COUNT(Department) AS Department_Count
FROM Student;
এই query Department column-এর non-null values count করবে।
SUM() function কোনো numeric column-এর total যোগফল বের করে। এটি salary, fee, marks, sales বা amount-এর total বের করতে ব্যবহার করা হয়।
SELECT SUM(column_name)
FROM table_name;
SELECT SUM(Fee) AS Total_Fee
FROM Student;
| Total_Fee |
|---|
| 53000 |
এখানে সব students-এর Fee যোগ করলে total 53000 হয়।
AVG() function কোনো numeric column-এর average value বের করে। এটি average marks, average salary বা average price বের করতে ব্যবহৃত হয়।
SELECT AVG(column_name)
FROM table_name;
SELECT AVG(Marks) AS Average_Marks
FROM Student;
| Average_Marks |
|---|
| 79 |
এখানে Marks-এর average value 79 এসেছে।
MIN() function কোনো column-এর smallest বা minimum value বের করে। এটি lowest marks, minimum salary বা minimum price বের করতে ব্যবহৃত হয়।
SELECT MIN(column_name)
FROM table_name;
SELECT MIN(Marks) AS Lowest_Marks
FROM Student;
| Lowest_Marks |
|---|
| 68 |
Student table-এ সবচেয়ে কম marks হলো 68।
MAX() function কোনো column-এর largest বা maximum value বের করে। এটি highest marks, maximum salary বা maximum price বের করতে ব্যবহৃত হয়।
SELECT MAX(column_name)
FROM table_name;
SELECT MAX(Marks) AS Highest_Marks
FROM Student;
| Highest_Marks |
|---|
| 90 |
Student table-এ সবচেয়ে বেশি marks হলো 90।
GROUP BY clause ব্যবহার করে rows-কে group করা হয় এবং প্রতিটি group-এর উপর aggregate function apply করা হয়।
যেমন, department-wise average marks বের করতে GROUP BY ব্যবহার করা যায়।
SELECT Department, AVG(Marks) AS Average_Marks
FROM Student
GROUP BY Department;
| Department | Average_Marks |
|---|---|
| Computer Science | 87.5 |
| Commerce | 76 |
| Arts | 68 |
এখানে প্রতিটি Department অনুযায়ী students-দের average marks বের করা হয়েছে।
HAVING clause aggregate result-এর উপর condition apply করতে ব্যবহার করা হয়। WHERE clause row filter করে, কিন্তু HAVING clause group বা aggregate result filter করে।
SELECT Department, AVG(Marks) AS Average_Marks
FROM Student
GROUP BY Department
HAVING AVG(Marks) > 75;
| Department | Average_Marks |
|---|---|
| Computer Science | 87.5 |
| Commerce | 76 |
এখানে only সেই departments দেখানো হয়েছে যাদের average marks 75-এর বেশি।
DISTINCT ব্যবহার করলে duplicate values বাদ দিয়ে aggregate calculation করা হয়।
SELECT COUNT(DISTINCT Department) AS Unique_Departments
FROM Student;
| Unique_Departments |
|---|
| 3 |
এখানে unique departments হলো Computer Science, Commerce এবং Arts — মোট 3টি।
বেশিরভাগ aggregate functions NULL values ignore করে। তবে COUNT(*) সব rows count করে, NULL থাকলেও row count হয়।
| Function | NULL Handling |
|---|---|
| COUNT(*) | সব rows count করে, NULL থাকলেও |
| COUNT(column) | শুধুমাত্র non-null values count করে |
| SUM() | NULL values ignore করে |
| AVG() | NULL values ignore করে |
| MIN() | NULL values ignore করে |
| MAX() | NULL values ignore করে |
| Function | Purpose | Example Query |
|---|---|---|
| COUNT() | Total rows বা values count করে | SELECT COUNT(*) FROM Student; |
| SUM() | Total যোগফল বের করে | SELECT SUM(Fee) FROM Student; |
| AVG() | Average value বের করে | SELECT AVG(Marks) FROM Student; |
| MIN() | Smallest value বের করে | SELECT MIN(Marks) FROM Student; |
| MAX() | Largest value বের করে | SELECT MAX(Marks) FROM Student; |
সুতরাং, SQL Aggregate Functions database-এর multiple rows থেকে summary information বের করার জন্য অত্যন্ত গুরুত্বপূর্ণ। COUNT(), SUM(), AVG(), MIN() এবং MAX() function ব্যবহার করে records count, total calculation, average calculation, smallest value এবং largest value সহজে বের করা যায়।
GROUP BY clause-এর সঙ্গে aggregate functions ব্যবহার করলে category-wise বা group-wise analysis করা যায়। তাই data analysis, reporting এবং decision-making-এর ক্ষেত্রে SQL aggregate functions-এর ব্যবহার খুবই গুরুত্বপূর্ণ।