আমরা একটি সহজ উদাহরণ নিতে পারেন।
TableA
নিম্নলিখিত মানগুলির সাথে নামযুক্ত একটি সারণী বিবেচনা করুন :
id firstname lastname Mark
-------------------------------------------------------------------
1 arun prasanth 40
2 ann antony 45
3 sruthy abc 41
6 new abc 47
1 arun prasanth 45
1 arun prasanth 49
2 ann antony 49
GROUP BY
একাধিক রেকর্ড জুড়ে ডেটা সংগ্রহ করতে এবং ফলাফলকে এক বা একাধিক কলাম দ্বারা গোষ্ঠীভুক্ত করতে এসকিউএল গ্রুপ বাই ক্লজটি একটি নির্বাচনী বিবৃতিতে ব্যবহার করা যেতে পারে।
আরও সাধারণ কথায় GROUP BY স্টেটমেন্টটি এক বা একাধিক কলাম দ্বারা ফলাফল-সেটকে গোষ্ঠী করতে সমষ্টিগত ফাংশনগুলির সাথে একত্রে ব্যবহৃত হয়।
বাক্য গঠন:
SELECT expression1, expression2, ... expression_n,
aggregate_function (aggregate_expression)
FROM tables
WHERE conditions
GROUP BY expression1, expression2, ... expression_n;
আমরা GROUP BY
আমাদের টেবিলে আবেদন করতে পারি :
select SUM(Mark)marksum,firstname from TableA
group by id,firstName
ফলাফল:
marksum firstname
----------------
94 ann
134 arun
47 new
41 sruthy
আমাদের আসল টেবিলটিতে আমাদের কাছে 7 টি সারি রয়েছে এবং যখন আমরা প্রয়োগ করি তখন GROUP BY id
সার্ভারের উপর ভিত্তি করে ফলাফলগুলি গ্রুপ করে id
:
সহজ কথায়:
এখানে GROUP BY
সাধারণত Sum()
প্রতিটি সারির জন্য ঘূর্ণায়মান এবং গণনা করে ফিরে আসা সারির সংখ্যা হ্রাস করে ।
PARTITION BY
বাই পার্টিশন যাওয়ার আগে আসুন আমরা এই OVER
ধারাটি দেখি :
এমএসডিএন সংজ্ঞা অনুসারে:
ওভার ক্লজটি একটি ক্যোরি রেজাল্ট সেটের মধ্যে উইন্ডো বা ব্যবহারকারী-সারি সারিগুলির সেটকে সংজ্ঞায়িত করে। একটি উইন্ডো ফাংশন তারপরে উইন্ডোতে প্রতিটি সারির জন্য একটি মান গণনা করে। চলমান গড়, ক্রমসংগ্রহ সমষ্টি, মোট চলমান, বা গোষ্ঠী ফলাফলের উপরে শীর্ষ এন এর মতো সামগ্রিক মানগুলি গণনা করতে আপনি ফাংশনগুলির সাথে ওভার ক্লজটি ব্যবহার করতে পারেন।
পক্ষ দ্বারা পার্টিশন ফিরে আসা সারিগুলির সংখ্যা হ্রাস করবে না।
আমরা আমাদের উদাহরণ সারণিতে অংশটি প্রয়োগ করতে পারি:
SELECT SUM(Mark) OVER (PARTITION BY id) AS marksum, firstname FROM TableA
ফলাফল:
marksum firstname
-------------------
134 arun
134 arun
134 arun
94 ann
94 ann
41 sruthy
47 new
ফলাফলগুলি দেখুন - এটি সারিগুলিকে ভাগ করবে এবং সমস্ত সারি GROUP BY এর বিপরীতে ফিরিয়ে দেবে ।