Aggregate Functions হল SQL এর সেই ফাংশনগুলি যা একাধিক রেকর্ড থেকে একটি একক মান রিটার্ন করে। এই ফাংশনগুলি সাধারণত GROUP BY কুয়েরি বা টেবিলের সার্বিক পরিসংখ্যান বের করতে ব্যবহার করা হয়। সাধারণত ব্যবহৃত Aggregate Functions এর মধ্যে SUM, COUNT, এবং AVG অন্তর্ভুক্ত।
এই ফাংশনগুলির মাধ্যমে আপনি ডেটাবেসের তথ্য সংগ্রহ করতে পারেন, যেমন:
- SUM: একটি কলামের মোট মান নির্ণয়।
- COUNT: একটি কলামে কতটি রেকর্ড আছে তা গোনা।
- AVG: একটি কলামের গড় মান নির্ণয়।
Java-তে MySQL ডেটাবেসের সাথে এই Aggregate Functions ব্যবহার করার উদাহরণ নিচে দেওয়া হল।
১. Aggregate Functions এর SQL সিনট্যাক্স
SUM(): একটি নির্দিষ্ট কলামের মোট মান নির্ধারণ করে।
SELECT SUM(column_name) FROM table_name;COUNT(): একটি নির্দিষ্ট কলামের রেকর্ড সংখ্যা নির্ধারণ করে।
SELECT COUNT(column_name) FROM table_name;AVG(): একটি নির্দিষ্ট কলামের গড় মান নির্ধারণ করে।
SELECT AVG(column_name) FROM table_name;
২. Java-তে Aggregate Functions ব্যবহার
এখন আমরা দেখব কিভাবে Java JDBC ব্যবহার করে MySQL ডেটাবেস থেকে SUM, COUNT, এবং AVG ফাংশনগুলির মাধ্যমে তথ্য সংগ্রহ করা যায়।
উদাহরণ: SUM, COUNT, AVG ফাংশন ব্যবহার করা
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class MySQLAggregateFunctionsExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/your_database"; // আপনার ডেটাবেসের URL
String username = "root"; // ইউজারনেম
String password = "your_password"; // পাসওয়ার্ড
// SQL কুয়েরি - SUM, COUNT, AVG ফাংশন
String sumQuery = "SELECT SUM(amount) FROM transactions"; // ট্রানজেকশনের মোট পরিমাণ
String countQuery = "SELECT COUNT(*) FROM transactions"; // মোট ট্রানজেকশন সংখ্যা
String avgQuery = "SELECT AVG(amount) FROM transactions"; // ট্রানজেকশনের গড় পরিমাণ
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
// JDBC ড্রাইভার লোড করা
Class.forName("com.mysql.cj.jdbc.Driver");
// ডেটাবেসের সাথে সংযোগ স্থাপন করা
connection = DriverManager.getConnection(url, username, password);
// SUM কুয়েরি এক্সিকিউট করা
preparedStatement = connection.prepareStatement(sumQuery);
resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
double totalAmount = resultSet.getDouble(1); // প্রথম কলামের মান
System.out.println("মোট পরিমাণ: " + totalAmount);
}
// COUNT কুয়েরি এক্সিকিউট করা
preparedStatement = connection.prepareStatement(countQuery);
resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
int totalTransactions = resultSet.getInt(1); // প্রথম কলামের মান
System.out.println("মোট ট্রানজেকশন সংখ্যা: " + totalTransactions);
}
// AVG কুয়েরি এক্সিকিউট করা
preparedStatement = connection.prepareStatement(avgQuery);
resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
double averageAmount = resultSet.getDouble(1); // প্রথম কলামের মান
System.out.println("গড় পরিমাণ: " + averageAmount);
}
} catch (ClassNotFoundException e) {
System.out.println("JDBC ড্রাইভার লোড করা যায়নি!");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("ডেটাবেস অপারেশন চলাকালীন সমস্যা হয়েছে!");
e.printStackTrace();
} finally {
// সংযোগ এবং প্রস্তুত স্টেটমেন্ট বন্ধ করা
try {
if (resultSet != null) {
resultSet.close();
}
if (preparedStatement != null) {
preparedStatement.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
System.out.println("সংযোগ বন্ধ করার সময় সমস্যা হয়েছে!");
e.printStackTrace();
}
}
}
}
৩. কোডের বর্ণনা
- SUM(): এই ফাংশনটি
transactionsটেবিলের amount কলামের মোট মান রিটার্ন করে। এটি ব্যবহার করা হয়েছেSELECT SUM(amount) FROM transactionsকুয়েরিতে। - COUNT(): এই ফাংশনটি
transactionsটেবিলের মোট রেকর্ড গুনে দেখাবে। এখানে ব্যবহার করা হয়েছেSELECT COUNT(*) FROM transactions। - AVG():
AVG(amount)ব্যবহার করেtransactionsটেবিলের amount কলামের গড় পরিমাণ বের করা হয়েছে।
PreparedStatement এবং ResultSet:
- PreparedStatement: এটি SQL কুয়েরি এক্সিকিউট করতে ব্যবহৃত হয় এবং ডেটাবেস থেকে তথ্য পুনরুদ্ধার করে।
- ResultSet: এটি SQL কুয়েরি থেকে প্রাপ্ত ফলাফল ধরে রাখে এবং পরে সেই ফলাফলগুলিকে প্রক্রিয়া করার জন্য ব্যবহৃত হয়। আমরা
resultSet.getDouble(1)বাresultSet.getInt(1)ব্যবহার করে রিটার্ন করা মান গ্রহণ করেছি, যেহেতু এখানে প্রথম কলামটি আমাদের প্রাপ্ত ফলাফল।
৪. Aggregate Functions এর সাথে GROUP BY ব্যবহার
যখন আপনি একটি নির্দিষ্ট গ্রুপের ভিত্তিতে aggregate ফাংশন ব্যবহার করতে চান, তখন GROUP BY কুয়েরি ব্যবহার করা হয়। উদাহরণস্বরূপ, যদি আপনি প্রতি কাস্টমারের মোট ট্রানজেকশন পরিমাণ দেখতে চান, তাহলে এটি হতে পারে:
SELECT customer_id, SUM(amount) FROM transactions GROUP BY customer_id;
এই কুয়েরি প্রতিটি কাস্টমারের জন্য মোট ট্রানজেকশন পরিমাণ দেখাবে।
৫. সারাংশ
Java MySQL অ্যাপ্লিকেশনে SUM, COUNT, এবং AVG ফাংশন ব্যবহার করে ডেটাবেসের বিভিন্ন পরিসংখ্যান বের করা সম্ভব। এই ফাংশনগুলির মাধ্যমে আপনি টেবিলের সার্বিক মান, রেকর্ড সংখ্যা, এবং গড় পরিমাণ বের করতে পারেন। PreparedStatement এবং ResultSet ব্যবহার করে SQL কুয়েরি এক্সিকিউট করে এবং ডেটা প্রসেস করা যায়। এসব Aggregate Functions ব্যবহার করে ডেটাবেসের উপরের স্তরের তথ্য খুব সহজে এবং কার্যকরভাবে অ্যাক্সেস করা সম্ভব।
Read more