Postgresql گروپ بذریعہ

Postgresql Grwp Bdhry



Postgresql گروپ بذریعہ شق ایک خصوصیت ہے جو ٹیبل میں ان قطاروں کو یکجا/ یکجا کرنے کے لیے استعمال ہوتی ہے جن میں ایک ہی ڈیٹا ہوتا ہے۔ یہ شق بنیادی طور پر ڈپلیکیٹ ڈیٹا کو ہٹانے اور ہم آہنگی برقرار رکھنے کے لیے استعمال ہوتی ہے۔ جب بھی ہم رقم، یا کوئی اور مجموعی جیسے AVG وغیرہ کا حساب لگانا چاہتے ہیں، اس گروپ کو شق کے لحاظ سے ہمیشہ استعمال کیا جاتا ہے کیونکہ PostgreSQL میں بہت سی شقیں استعمال ہوتی ہیں۔ لیکن ہر شق کے درمیان ایک درجہ بندی موجود ہے۔

سے > کہاں > 'گروپ بائے' > ہونا > منتخب کریں > الگ > ترتیب دیں > حد

PostgreSQL کا کام 'جہاں' اور 'ہونا' شق کے اندر ہے۔







نحو



کالم منتخب کریں۔

dumytable سے

کہاں [حالات]

پہلے کالم، دوسرے کالم کے حساب سے گروپ۔

پہلے کالم، دوسرے کالم کے حساب سے ترتیب دیں۔

مثال 1



فنکشن کے لحاظ سے گروپ کے تصور کو سمجھنے کے لیے، ہم یہاں ایک مثال استعمال کرتے ہیں۔ مسافروں کی میز میں، آپ دیکھ سکتے ہیں کہ کچھ لوگوں کے آخری نام ایک جیسے ہیں۔ ہر ایک نام جو دوسرے سے ملتا جلتا ہے ایک گروپ بناتا ہے، اور ان کی ادائیگی ہر ایک نام کے خلاف اجتماعی طور پر شامل کی جاتی ہے۔ ذیل کی مثال میں اس کی وضاحت کی گئی ہے۔





>> مسافر گروپ BY lname سے lname، SUM (ادائیگی) کا انتخاب کریں۔

مسافر کا آخری نام بلٹ ان فنکشن 'SUM' کے استعمال سے منتخب کیا جاتا ہے جو کالم 'ادائیگی' لیتا ہے۔ اور ان لوگوں کے لیے ادائیگی شامل کریں جن کا نام ایک ہی ہے۔ مثال کے طور پر 'جاوید' اور 'سعد' کی تنخواہ جوڑی جاتی ہے۔ جبکہ 'ملک' اور 'شمس' کے لیے انفرادی طور پر ذکر کیا گیا ہے۔



اسی طرح، ایک میز 'ہسپتال' پر غور کریں۔ ہم عمر کے لحاظ سے شہر کو گروپ کرنا چاہتے ہیں۔ اس مثال میں، ایک شہر ایک کالم میں ایک سے زیادہ بار موجود ہے۔ ہر شہر کو ایک ہی شہر کے نام کے ساتھ گروپ کیا گیا ہے۔ شہر کے ہر گروپ کی عمریں شامل کی جاتی ہیں اور ایک قطار بنتی ہے۔

ہسپتال:

>> شہر کا انتخاب کریں، SUM (عمر) ہسپتال گروپ BY شہر سے؛

مثال 2

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

یہ ایک سے زیادہ کالموں کے ساتھ شق کے لحاظ سے گروپ کی ایک مثال ہے۔ کیونکہ جب گروپ بندی کے لیے ایک سے زیادہ کالم منتخب کیے جاتے ہیں، تو ایک ٹیبل کے ذریعے گروپ کے مقابلے میں نتیجے کی قدر تبدیل ہو جاتی ہے۔

>> مسافر گروپ سے id، lname، SUM (ادائیگی) منتخب کریں id، lname؛

آؤٹ پٹ سے، آپ کو ایک چیز نظر آئے گی کہ سب سے پہلے، وہ تمام نام دکھائے جاتے ہیں جو غیر معمولی ہیں، اور پھر جو ایک جیسے ہیں ان کا ذکر ٹیبل میں کیا گیا ہے۔

مثال 3

اس مثال میں شمولیت کی شرط اور شق کے لحاظ سے ایک گروپ ہے۔ جیسا کہ 'join' استعمال ہوتا ہے، اس کا مطلب ہے کہ ہم نے یہاں دو ٹیبل استعمال کیے ہیں۔ ایک 'آئٹم' ہے، اور دوسرا 'آرڈرز' ہے۔

اشیاء:

احکامات:

ہم نے 'آئٹمز' ٹیبل کے دو کالموں کی اقدار کو '' کے ساتھ جوڑنے کے لیے ایک کنکٹنیشن طریقہ (دو تاروں کو جوڑنے کے لیے استعمال کیا جاتا ہے) استعمال کیا ہے اور کالم کو اجتماعی طور پر 'تفصیل' کا نام دیا ہے۔ یہ اختیاری ہے؛ آپ انہیں الگ سے لے سکتے ہیں۔ اس استفسار میں، مطلوبہ لفظ 'استعمال' دوسرے ٹیبل سے مخصوص کالم کی شناخت کرتا ہے۔ آئٹمز ٹیبل کا پتہ 'آرڈرز' ٹیبل کے ایڈریس کالم سے ملایا جاتا ہے۔ یہ دو میزوں کے درمیان ایک جوڑ بنا کر کیا جاتا ہے۔ پچھلی مثالوں کی طرح، دونوں کالم GROUP BY شق کے ذریعے منتخب کیے جائیں گے۔

>> نام منتخب کریں || '،' || تفصیل کے طور پر زمرہ، آئٹمز کے اندر سے ایڈریس جوائن کرنے کے آرڈرز استعمال کرنا (پتہ) ایڈریس کے لحاظ سے گروپ، تفصیل؛

آپ دیکھ سکتے ہیں کہ 5 قطاروں کو منتخب کیا جائے گا جس میں آئٹمز کا پتہ آرڈرز کے ایڈریس سے ملتا ہے۔ اور پھر، تفصیلی کالم ایڈریس کالم کے ساتھ خط و کتابت بنائے گا۔

اسی طرح، دو جدولوں میں عمر کے عنصر کے ساتھ جوڑنے کی ایک اور مثال ہے۔ ایک ہے 'مسافر'، اور دوسرا 'مزدور'۔ کنکٹنیشن پہلے اور آخری نام کے درمیان ہے۔ یہ دونوں نام دو ناموں کے درمیان خالی جگہ کے ذریعے الگ کیے گئے ہیں۔ ہم نے یہاں ورکر ٹیبل کا ایک حصہ لیا ہے۔

کارکن:

استفسار کام کرے گا تاکہ وہ نقطہ جہاں کارکن کا نام مسافر کے ساتھ ملایا جائے، مسافر کی عمر، عمر کے کالم میں ظاہر ہو۔

>> fname منتخب کریں || '' || مسافر.

ایک قطار بنتی ہے۔ مکمل_نام اسپیس کے ساتھ دو کالموں کو جوڑ کر بنایا جاتا ہے، اور پتہ منتخب کیا جاتا ہے جہاں مسافر کا نام کارکن کے نام سے ملتا ہے۔

مثال 4

یہ مثال 'آئٹمز' ٹیبل کی آئی ڈیز کو شمار کرنے کے لیے کاؤنٹ () فنکشن کے استعمال سے متعلق ہے۔ یہ دوبارہ ٹیبل کی شناخت کے مطابق گروپ ہے۔

>> آئی ڈی منتخب کریں، COUNT (id) آئٹمز سے گروپ بذریعہ id؛

id کالم میں قطاروں کو گروپوں میں تقسیم کیا گیا ہے۔ ہر گروپ کو کالم میں شمار کیا جاتا ہے کہ وہ کالم میں کتنی بار ظاہر ہوتا ہے۔ نتیجہ خیز جدول میں، ایک نیا کالم ' شمار' کے نام سے بنتا ہے، اور شمار کی قدریں یہاں ہر گروپ کے سامنے لکھی جاتی ہیں۔

آپ کا پی جی ایڈمن

اب ہم نے PostgreSQL کے ڈیش بورڈ سائیڈ پر کچھ مثالیں لگائی ہیں۔ یہ مثالیں کسی نہ کسی طرح مختلف ہیں کیونکہ یہ اصل کالم سے ایک ذیلی ٹوٹل قطار بناتی ہیں جب کوئی ایک آئٹم دوسروں سے مختلف ہوتا ہے، اس لیے قدر NULL کے طور پر لوٹائی جاتی ہے۔

پہلی مثال پر غور کریں؛ یہاں، ہم نے ایک کالم کا نام 'ALL' بنایا ہے جس میں دو کالم مل گئے ہیں۔ ایک پتہ اور ایک زمرہ۔ 'ALL' کالم دونوں کالموں میں مجموعی طور پر قدروں کو شمار کرتا ہے۔ ایڈریس کالم کو 'add' کے طور پر گروپ کیا گیا ہے، اور زمرہ کالم کو الگ سے 'cat' کے طور پر گروپ کیا گیا ہے۔ چونکہ استعمال شدہ دونوں جدولوں کے کالم کے نام ایک دوسرے کے ساتھ مل سکتے ہیں۔ لہذا متعلقہ ٹیبل کے ہر کالم تک ایک مخصوص آبجیکٹ کے ذریعے رسائی حاصل کی جاتی ہے۔

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

>> منتخب کریں o.address، زمرہ، شمار (*) بطور 'ALL'، GROUPING (o.address) AS 'add' , GROUPING (category ) as 'cat' FROM آئٹمز I، آرڈر o جہاں i.order_no = o۔ order_id AND i.address= 'لاہور' گروپ بذریعہ کیوب (o.address، زمرہ) آرڈر بذریعہ 1، 2؛

لاہور شہر کے لیے ایک کیٹیگری کا انتخاب کیا گیا ہے۔ 4 امکانات ہیں۔ کبھی کبھی کھلونا موجود ہوتا ہے لیکن پتہ نہیں ہوتا۔ اور اس کے برعکس۔ لیکن ایک وقت ایسا ہوتا ہے جہاں زمرہ اور پتہ دونوں موجود ہوتے ہیں۔

اب، اگر ہم ایک ٹیبل سے نام کی حالت کو تبدیل کریں اور ٹیبل کو دوسرے کے ساتھ تبدیل کریں۔ 'Items.address' کو 'order.address' سے بدل دیا جاتا ہے، پھر نتیجہ مختلف ہوتا ہے۔

نتیجہ

کسی بھی مجموعی آپریٹر کو اجتماعی ڈیٹا پر لاگو کرنے کے لیے 'Postgresql group by' کی شق استعمال کی جاتی ہے۔ یہ مضمون شمار کے فنکشن، جوائنز، اور ایک سے زیادہ کالموں کے انتخاب اور گروپ بندی کے ساتھ شق کے لحاظ سے گروپ کا استعمال کرتا ہے۔ مجھے یقین ہے کہ یہ ٹیوٹوریل قارئین کے لیے سمجھنے کا بہترین ذریعہ ہوگا۔