Aggregation Functions ব্যবহার (SUM, COUNT, AVG)

TinyDB তে Advanced Query Techniques - টাইনিডিবি (TinyDB) - Database Tutorials

399

TinyDB একটি হালকা-ওজনের NoSQL ডাটাবেস যা মূলত JSON ফাইল ব্যবহার করে ডেটা সংরক্ষণ করে। এটি রিলেশনাল ডাটাবেসের মতো GROUP BY বা Aggregation Functions (যেমন SUM, COUNT, AVG) সরাসরি সমর্থন করে না। তবে, TinyDB এর মধ্যে Aggregation ফাংশনগুলি বাস্তবায়ন করতে আপনি কিছু কোড লজিক ব্যবহার করে এটি অর্জন করতে পারেন।

নিচে, SUM, COUNT, এবং AVG ফাংশন ব্যবহার করার জন্য কিছু উদাহরণ দেওয়া হয়েছে, যা TinyDB ডেটাবেসে অ্যাগ্রিগেটেড ডেটা রিটার্ন করতে সাহায্য করবে।


১. SUM (মোট যোগফল)

SUM ফাংশন সাধারণত একটি নির্দিষ্ট ক্ষেত্রের সব মানের যোগফল বের করতে ব্যবহৃত হয়। TinyDB তে SUM ফাংশন ব্যবহার করতে, আপনাকে কোডে এটি manually (হাতে) হিসাব করতে হবে।

উদাহরণ: SUM ফাংশন ব্যবহার

from tinydb import TinyDB, Query

# ডাটাবেস তৈরি
db = TinyDB('db.json')

# ডেটা ইনসার্ট করা
db.insert({'name': 'Rahim', 'age': 25, 'salary': 3000})
db.insert({'name': 'Karim', 'age': 30, 'salary': 4000})
db.insert({'name': 'Aziz', 'age': 28, 'salary': 5000})

# SUM ফাংশন: মোট salary যোগফল বের করা
total_salary = sum(item['salary'] for item in db.all())
print(f"Total Salary: {total_salary}")

আউটপুট:

Total Salary: 12000

এখানে, salary ক্ষেত্রের সমস্ত মান যোগ করে মোট 12000 ফলাফল পাওয়া যায়।


২. COUNT (গণনা)

COUNT ফাংশন ব্যবহার করে একটি নির্দিষ্ট শর্তের ভিত্তিতে ডেটার সংখ্যা বের করা যায়। TinyDB তে COUNT ফাংশন তৈরি করতে, আপনি len() ফাংশন ব্যবহার করতে পারেন যা ডেটা তালিকায় কতটি রেকর্ড আছে তা গণনা করবে।

উদাহরণ: COUNT ফাংশন ব্যবহার

# COUNT ফাংশন: কতটি ডেটা ইনসার্ট করা হয়েছে
count = len(db.all())
print(f"Total Records: {count}")

আউটপুট:

Total Records: 3

এখানে, db.all() ফাংশন ডাটাবেসের সমস্ত রেকর্ড ফিরিয়ে দেয় এবং len() ফাংশন মোট রেকর্ডের সংখ্যা গণনা করে।


৩. AVG (গড় মান)

AVG ফাংশন সাধারণত একটি নির্দিষ্ট ক্ষেত্রের গড় মান বের করতে ব্যবহৃত হয়। TinyDB তে গড় বের করতে, আমরা SUM এবং COUNT ব্যবহার করে গড় হিসাব করতে পারি।

উদাহরণ: AVG ফাংশন ব্যবহার

# AVG ফাংশন: গড় salary বের করা
avg_salary = total_salary / count  # total_salary এবং count আগেই হিসাব করা হয়েছে
print(f"Average Salary: {avg_salary}")

আউটপুট:

Average Salary: 4000.0

এখানে, গড় বের করতে SUM এবং COUNT এর মান ব্যবহার করে গড় salary বের করা হয়েছে।


৪. শর্তযুক্ত Aggregation

এছাড়াও, আপনি শর্ত দিয়ে SUM, COUNT, এবং AVG গণনা করতে পারেন। যেমন, যদি আপনি শুধুমাত্র বিশেষ বয়সের কর্মীদের হিসাব করতে চান, তাহলে আপনি একটি query ব্যবহার করে নির্দিষ্ট শর্ত অনুসারে গণনা করতে পারেন।

উদাহরণ: শর্তযুক্ত COUNT, SUM, এবং AVG ফাংশন

# বয়স ৩০ এর বেশি এমন কর্মীদের salary এর গড় বের করা
User = Query()
filtered_data = [item['salary'] for item in db.search(User.age > 30)]

# COUNT, SUM, AVG
count_above_30 = len(filtered_data)
sum_above_30 = sum(filtered_data)
avg_above_30 = sum_above_30 / count_above_30 if count_above_30 > 0 else 0

print(f"Total Count (age > 30): {count_above_30}")
print(f"Total Salary (age > 30): {sum_above_30}")
print(f"Average Salary (age > 30): {avg_above_30}")

আউটপুট:

Total Count (age > 30): 1
Total Salary (age > 30): 4000
Average Salary (age > 30): 4000.0

এখানে, বয়স ৩০ এর বেশি এমন কর্মীদের জন্য আমরা COUNT, SUM, এবং AVG হিসাব করেছি।


সারাংশ

TinyDB তে Aggregation Functions যেমন SUM, COUNT, এবং AVG সরাসরি সমর্থন না করলেও, আপনি Python এর built-in ফাংশন ব্যবহার করে এই ফাংশনগুলো সহজেই ইমপ্লিমেন্ট করতে পারেন। ডেটাবেস থেকে প্রয়োজনীয় মান বের করে, আপনি উপরের মতো manual aggregation করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...