Neo4j-এ Aggregation এবং Grouping Functions ব্যবহার করে আপনি ডেটাকে সংগ্রহ (aggregate) করতে এবং বিভিন্ন ধরনের পরিসংখ্যানিক মান (statistical values) বের করতে পারেন। এগুলি ব্যবহার করে সহজেই ডেটার ওপর গণনা, সামগ্রিক যোগফল, এবং গড় বের করা সম্ভব।
Neo4j-এ Cypher Query Language ব্যবহার করে Aggregation Functions এবং Grouping Functions প্রয়োগ করা হয়, যা গ্রাফ ডেটাবেসে সংরক্ষিত ডেটা সম্পর্কে বিস্তারিত বিশ্লেষণ করতে সহায়ক।
1. COUNT Function
COUNT ফাংশনটি নির্দিষ্ট নোড বা রিলেশনশিপের সংখ্যা গোনার জন্য ব্যবহৃত হয়। এটি একে একে কেবল নির্দিষ্ট প্রপার্টি বা রিলেশনশিপের উপস্থিতি গণনা করে।
সিনট্যাক্স:
COUNT(expression)
এখানে expression একটি নোড বা রিলেশনশিপের প্রপার্টি হতে পারে।
উদাহরণ:
নোডের সংখ্যা গণনা করা:
MATCH (n:Person) RETURN COUNT(n);এখানে:
Personলেবেলযুক্ত সকল নোডের সংখ্যা গোনা হবে।
নির্দিষ্ট শর্ত অনুযায়ী সংখ্যা গণনা করা:
MATCH (n:Person {age: 30}) RETURN COUNT(n);এখানে:
Personলেবেলযুক্ত এবং বয়স ৩০ বছর যারা রয়েছে, তাদের সংখ্যা গোনা হবে।
2. SUM Function
SUM ফাংশনটি একটি নির্দিষ্ট প্রপার্টির মোট যোগফল বের করার জন্য ব্যবহৃত হয়। এটি সংখ্যাসূচক মানের যোগফল বের করে।
সিনট্যাক্স:
SUM(expression)
এখানে expression একটি প্রপার্টি যা সংখ্যাসূচক মান ধারণ করে।
উদাহরণ:
নির্দিষ্ট প্রপার্টির যোগফল বের করা:
MATCH (n:Person) RETURN SUM(n.age);এখানে:
Personনোডের বয়সের যোগফল বের করা হবে।
নির্দিষ্ট শর্তে যোগফল বের করা:
MATCH (n:Product) WHERE n.category = 'Laptop' RETURN SUM(n.price);এখানে:
Productনোডের মধ্যে, শুধুমাত্রLaptopক্যাটাগরির পণ্যেরpriceপ্রপার্টির যোগফল বের করা হবে।
3. AVG Function
AVG ফাংশনটি একটি প্রপার্টির গড় (average) মান বের করার জন্য ব্যবহৃত হয়। এটি সংখ্যাসূচক মানের গড় হিসাব করে।
সিনট্যাক্স:
AVG(expression)
এখানে expression একটি প্রপার্টি যা সংখ্যাসূচক মান ধারণ করে।
উদাহরণ:
নির্দিষ্ট প্রপার্টির গড় বের করা:
MATCH (n:Person) RETURN AVG(n.age);এখানে:
Personনোডগুলির বয়সের গড় বের করা হবে।
নির্দিষ্ট শর্তে গড় বের করা:
MATCH (n:Product) WHERE n.category = 'Smartphone' RETURN AVG(n.price);এখানে:
Productনোডের মধ্যে, শুধুমাত্রSmartphoneক্যাটাগরির পণ্যেরpriceপ্রপার্টির গড় বের করা হবে।
Grouping Data (GROUP BY)
Neo4j-এ গ্রুপিং ফাংশন ব্যবহার করার জন্য আপনি WITH কিওয়ার্ড ব্যবহার করতে পারেন। GROUP BY এর মতো গ্রুপিং করা হয় WITH কমান্ডের মাধ্যমে, যেখানে ডেটা গ্রুপিং করা হয় এবং তারপর aggregation function প্রয়োগ করা হয়।
সিনট্যাক্স:
MATCH (n:Label)
WITH n.property AS group_property, COUNT(n) AS count_value
RETURN group_property, count_value;
উদাহরণ:
বয়সের ভিত্তিতে গ্রুপিং এবং গননা (COUNT):
MATCH (n:Person) WITH n.age AS age_group, COUNT(n) AS count RETURN age_group, count;এখানে:
Personনোডগুলি বয়সের ভিত্তিতে গ্রুপিং করা হয়েছে এবং তারপর প্রতি বয়সের জন্য ব্যক্তির সংখ্যা গোনা হয়েছে।
ক্যাটাগরি অনুযায়ী গড় মূল্য (AVG):
MATCH (n:Product) WITH n.category AS category_group, AVG(n.price) AS avg_price RETURN category_group, avg_price;এখানে:
Productনোডগুলিকেcategoryঅনুযায়ী গ্রুপ করা হয়েছে এবং প্রতিটি ক্যাটাগরির গড় মূল্য বের করা হয়েছে।
সংক্ষেপ
Neo4j-এ Aggregation এবং Grouping Functions ব্যবহার করে আপনি ডেটার মধ্যে গাণিতিক বিশ্লেষণ যেমন গণনা (COUNT), যোগফল (SUM) এবং গড় (AVG) বের করতে পারেন। Cypher Query Language-এ এই ফাংশনগুলি ব্যবহার করে সহজেই ডেটার ওপর পরিসংখ্যানিক বিশ্লেষণ করা সম্ভব। WITH কিওয়ার্ডের মাধ্যমে গ্রুপিং করা যায় এবং এরপর aggregation functions প্রয়োগ করা হয়, যা ডেটার গঠন এবং সম্পর্ক আরও কার্যকরভাবে বিশ্লেষণ করতে সাহায্য করে।
Read more