এসকিউএল স্ট্রিং এগ্রিগেট ফাংশন

Esaki U Ela Strim Egrigeta Phansana



আপনি যদি কখনো SQL ডাটাবেস নিয়ে কাজ করে থাকেন, তাহলে আপনি সম্ভবত সমষ্টিগত ফাংশনগুলির সাথে পরিচিত। এগুলি মূলত ফাংশনের একটি সেট যা মানগুলির একটি সেটে গণনা করে এবং একটি একক ফলাফল দেয়।

একটি উদাহরণে SUM(), AVG(), COUNT(), MAX, এবং MIN() এর মত ফাংশন অন্তর্ভুক্ত রয়েছে। যাইহোক, এসকিউএল-এর সামগ্রিক ফাংশন সম্পর্কে আপনি একটি জিনিস লক্ষ্য করবেন যে তারা সংখ্যাসূচক ক্রিয়াকলাপের দিকে প্রস্তুত।

কিন্তু আপনি কি জানেন যে সেখানে সামগ্রিক ফাংশন আছে যা স্ট্রিং মান নিয়ে কাজ করে? এই টিউটোরিয়ালে, আমরা এই ফাংশনগুলি দেখব, তারা কীভাবে কাজ করে এবং কীভাবে আমরা আমাদের ডাটাবেসে ব্যবহার করতে পারি।







দ্রষ্টব্য: এটি একটি ভাল নোট যে এই পোস্টে আলোচনা করা বেশিরভাগ ফাংশন স্ট্যান্ডার্ড SQL এর অংশ নয়। ফলস্বরূপ, তারা বিভিন্ন ডাটাবেস ইঞ্জিন যেমন PostgreSQL, SQL সার্ভার ইত্যাদির একটি এক্সটেনশন।



স্ট্রিং এগ্রিগেট ফাংশন কি?

স্ট্রিং এগ্রিগেট ফাংশন হল ফাংশনগুলির একটি সেট যা একটি গ্রুপ বা সারির মধ্যে স্ট্রিংগুলির একটি সেটের উপর একত্রিতকরণ ক্রিয়া সম্পাদন করে এবং একটি একক ফলাফল প্রদান করে।



একটি নির্দিষ্ট কলামের উপর ভিত্তি করে সারিগুলিকে গোষ্ঠীবদ্ধ করতে এবং তারপর প্রতিটি গ্রুপে স্ট্রিংগুলিকে একত্রিত করতে আমরা মূলত GROUP BY ক্লজের সাথে এই ফাংশনগুলি ব্যবহার করি।





কিছু সাধারণ স্ট্রিং সমষ্টিগত ফাংশন অন্তর্ভুক্ত:

  • GROUP_CONCAT() – PostgreSQL এবং MySQL
  • STRING_AGG – SQL সার্ভার
  • ARRAY_AGG – PostgreSQL
  • লিস্ট্যাগ - ওরাকল

আসুন প্রতিটি ফাংশন এবং এটি কী প্রদান করে তা অন্বেষণ করি।



GROUP_CONCAT()

GROUP_CONCAT() ফাংশন PostgreSQL এবং MySQL ডাটাবেস দ্বারা সমর্থিত। এটি আমাদেরকে একাধিক সারি থেকে একটি একক স্ট্রিংয়ে মানগুলিকে সংযুক্ত করতে দেয়।

ধরুন আমাদের নিম্নরূপ একটি 'কর্মচারী' টেবিল আছে:

টেবিল কর্মচারী তৈরি করুন (
কর্মচারী_আইডি আইএনটি স্বয়ংক্রিয়_INCREMENT প্রাথমিক কী,
প্রথম_নাম VARCHAR(50),
শেষ_নাম VARCHAR(50),
বিভাগ ভার্চার(৫০)
);

কর্মীদের অন্তর্ভুক্ত করুন (first_name, last_name, Department) VALUES
('এলিস', 'স্মিথ', 'মানব সম্পদ'),
('বব', 'জনসন', 'মার্কেটিং'),
('চার্লি', 'উইলসন', 'ফাইনান্স'),
('ডেভিড', 'ব্রাউন', 'সেলস'),
('ইভা', 'ডেভিস', 'ইঞ্জিনিয়ারিং');

আউটপুট:

আমরা যদি প্রথম নাম গ্রহণ করে এবং শেষ নামের সাথে সংযুক্ত করে কর্মচারীর পুরো নাম নির্ধারণ করতে চাই, আমরা নিম্নলিখিত উদাহরণে প্রদর্শিত GROUP_CONCAT() ফাংশনটি ব্যবহার করতে পারি:

নির্বাচন করুন
বিভাগ,
GROUP_CONCAT(first_name, ' ', last_name) as full_name
থেকে
কর্মচারী
দ্বারা গ্রুপ
বিভাগ

এই ক্ষেত্রে, আমরা 'first_name' এবং 'last_name' কলাম থেকে স্ট্রিংগুলিকে সংযুক্ত করতে ফাংশনটি ব্যবহার করি এবং নামের সাথে একটি স্পেস যোগ করার জন্য একটি খালি স্ট্রিং ব্যবহার করি।

এতে প্রতিটি বিভাগের কর্মচারীদের তালিকা রয়েছে।

STRING_AGG

এই ফাংশনটি GROUP_CONCAT() ফাংশনের অনুরূপ কিন্তু এটি শুধুমাত্র SQL সার্ভার ডাটাবেসে সমর্থিত।

একটি উদাহরণ ব্যবহার নিম্নরূপ:

নির্বাচন করুন
বিভাগ,
STRING_AGG(first_name, last_name, ' ') as full_name
থেকে
কর্মচারী
দ্বারা গ্রুপ
বিভাগ

এটি নির্দিষ্ট কলামে স্ট্রিং সংযোজন সঞ্চালন করে একটি বিভেদক হিসাবে স্থান হিসাবে।

ARRAY_AGG

ARRAY_AGG ফাংশন শুধুমাত্র PostgreSQL ডাটাবেসে উপলব্ধ। এটি আমাদের একটি একক অ্যারেতে মানগুলিকে একত্রিত করতে দেয়।

একটি উদাহরণ নিম্নরূপ:

নির্বাচন করুন
বিভাগ,
ARRAY_AGG(first_name) as staff_list
থেকে
কর্মচারী
দ্বারা গ্রুপ
বিভাগ

এটি একটি অ্যারে হিসাবে কর্মচারীর নাম একত্রিত করা উচিত।

LISTAGG()

LISTAGG() ফাংশন শুধুমাত্র ওরাকল ডাটাবেসে উপলব্ধ। এটি আমাদেরকে একটি নির্দিষ্ট ডিলিমিটারের সাথে একটি একক স্ট্রিংয়ে মানগুলিকে সংযুক্ত করতে দেয়।

একটি উদাহরণ নিম্নরূপ:

বিভাগ নির্বাচন করুন, LISTAGG(first_name, last_name,  '') গ্রুপের মধ্যে (অর্ডার করুন কর্মী_নাম ASC) কর্মচারী হিসেবে
কর্মচারীদের কাছ থেকে
বিভাগ দ্বারা গ্রুপ;

এটি কর্মীদের নাম এবং নির্দিষ্ট সীমানাকে সংযুক্ত করে।

উপসংহার

এই টিউটোরিয়ালে, আমরা স্ট্রিং অ্যাগ্রিগেট ফাংশন সম্পর্কে শিখেছি যা আমাদের স্ট্রিং মানগুলির একটি তালিকা প্রদান করতে এবং একটি একক ফলাফল স্ট্রিং মানতে একটি অপারেশন সম্পাদন করতে দেয়।