ایس کیو ایل سٹرنگ ایگریگیٹ فنکشنز

Ays Kyw Ayl S Rng Aygrygy Fnkshnz



اگر آپ نے کبھی ایس کیو ایل ڈیٹا بیس سے نمٹا ہے، تو آپ شاید مجموعی افعال سے واقف ہوں گے۔ وہ بنیادی طور پر افعال کا ایک مجموعہ ہیں جو اقدار کے ایک سیٹ پر حساب کتاب کرتے ہیں اور ایک نتیجہ واپس کرتے ہیں۔

ایک مثال میں SUM()، AVG()، COUNT()، MAX، اور MIN() جیسے فنکشنز شامل ہیں۔ تاہم، ایک چیز جو آپ SQL میں مجموعی افعال کے بارے میں دیکھیں گے وہ یہ ہے کہ وہ عددی کارروائیوں کے لیے تیار ہیں۔

لیکن کیا آپ جانتے ہیں کہ مجموعی فنکشنز ہیں جو سٹرنگ ویلیوز سے ڈیل کرتے ہیں؟ اس ٹیوٹوریل میں، ہم ان فنکشنز کو دیکھیں گے، یہ کیسے کام کرتے ہیں، اور ہم انہیں اپنے ڈیٹا بیس میں کیسے استعمال کر سکتے ہیں۔







نوٹ: یہ ایک اچھی بات ہے کہ اس پوسٹ میں جن فنکشنز پر بات کی گئی ہے ان میں سے زیادہ تر معیاری SQL کا حصہ نہیں ہیں۔ نتیجے کے طور پر، وہ مختلف ڈیٹا بیس انجنوں کی توسیع ہیں جیسے PostgreSQL، SQL Server، وغیرہ۔



سٹرنگ کے مجموعی افعال کیا ہیں؟

سٹرنگ ایگریگیٹ فنکشنز فنکشنز کا ایک سیٹ ہیں جو گروپ یا قطار کے اندر سٹرنگز کے سیٹ پر ایگریگیشن آپریشنز انجام دیتے ہیں اور ایک ہی نتیجہ واپس کرتے ہیں۔



ہم بنیادی طور پر ان فنکشنز کو GROUP BY شق کے ساتھ کسی خاص کالم کی بنیاد پر قطاروں کو گروپ کرنے کے لیے استعمال کرتے ہیں اور پھر ہر گروپ میں تاروں کو جمع کرتے ہیں۔





کچھ عام سٹرنگ کے مجموعی افعال میں شامل ہیں:

  • GROUP_CONCAT() - PostgreSQL اور MySQL
  • STRING_AGG - SQL سرور
  • ARRAY_AGG - PostgreSQL
  • LISTAGG - اوریکل

آئیے ہر ایک فنکشن اور یہ کیا فراہم کرتا ہے اس کا جائزہ لیں۔



GROUP_CONCAT()

GROUP_CONCAT() فنکشن پوسٹگری ایس کیو ایل اور مائی ایس کیو ایل ڈیٹا بیس کے ذریعے سپورٹ کیا جاتا ہے۔ یہ ہمیں ایک ہی سٹرنگ میں متعدد قطاروں سے اقدار کو جوڑنے کی اجازت دیتا ہے۔

فرض کریں کہ ہمارے پاس 'ملازمین' کی میز مندرجہ ذیل ہے:

ٹیبل ملازمین بنائیں (
ملازم_ID INT AUTO_INCREMENT بنیادی کلید،
پہلا نام VARCHAR(50)،
آخری_نام VARCHAR(50)،
ڈیپارٹمنٹ ورچار(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 Server ڈیٹا بیس میں تعاون یافتہ ہے۔

ایک مثال استعمال مندرجہ ذیل ہے:

منتخب کریں۔
شعبہ،
STRING_AGG(first_name, last_name, '') as full_name
سے
ملازمین
گروپ بذریعہ
شعبہ؛

یہ مخصوص کالموں پر سٹرنگ کنکٹنیشن کو بطور ڈیلیمیٹر اسپیس کے طور پر انجام دیتا ہے۔

ARRAY_AGG

ARRAY_AGG فنکشن صرف PostgreSQL ڈیٹا بیس میں دستیاب ہے۔ یہ ہمیں اقدار کو ایک صف میں جمع کرنے کی اجازت دیتا ہے۔

ایک مثال درج ذیل ہے:

منتخب کریں۔
شعبہ،
ARRAY_AGG(پہلا_نام) AS ملازمین_لسٹ
سے
ملازمین
گروپ بذریعہ
شعبہ؛

اس میں ملازم کے نام کو ایک صف کے طور پر جمع کرنا چاہیے۔

LISTAGG()

LISTAGG() فنکشن صرف اوریکل ڈیٹا بیس میں دستیاب ہے۔ یہ ہمیں ایک مخصوص حد بندی کے ساتھ اقدار کو ایک ہی تار میں جوڑنے کی اجازت دیتا ہے۔

ایک مثال درج ذیل ہے:

منتخب محکمہ، LISTAGG(first_name, last_name,  '') WITHIN GROUP (order by employee_name ASC) بطور ملازمین
ملازمین سے
محکمہ کی طرف سے گروپ؛

یہ ملازمین کے ناموں اور مخصوص حد بندی کو جوڑتا ہے۔

نتیجہ

اس ٹیوٹوریل میں، ہم نے سٹرنگ ایگریگیٹ فنکشنز کے بارے میں سیکھا جو ہمیں سٹرنگ ویلیو کی فہرست فراہم کرنے اور ایک نتیجے میں آنے والی سٹرنگ ویلیو میں آپریشن کرنے کی اجازت دیتا ہے۔