PostgreSQL Crosstab ماڈیول کے ساتھ کام کرنا
یہ بتانے کے لیے ایک کمرہ رکھنا آسان ہے کہ آپ اپنے ڈیٹا کی نمائندگی کس طرح کرنا چاہتے ہیں۔ PostgreSQL کے ساتھ، اگرچہ ڈیفالٹ طریقہ یہ ہے کہ ڈیٹا کو ٹیبلر شکل میں رکھا جائے، کراس ٹیب ماڈیول آپ کو ایک اور آپشن فراہم کرتا ہے۔ آپ بہتر پریزنٹیشن کے لیے PostgreSQL ٹیبل سے 'منتخب' کالم استعمال کر کے پیوٹ ٹیبل بنا سکتے ہیں۔
حیرت انگیز خصوصیت PostgreSQL ورژن 8.3 کی توسیع کے طور پر آتی ہے۔ 'ٹیبل فنک' ایکسٹینشن کراس ٹیب فنکشن پیش کرتی ہے، جس سے آپ کے رزلٹ سیٹ کے طور پر پیوٹ ٹیبلز کا ہونا ممکن ہوتا ہے۔ آئیے ایک مثال دیتے ہیں۔
سب سے پہلے، ہم درج ذیل کمانڈ کا استعمال کرتے ہوئے تین کالموں کے ساتھ 'نتائج' ٹیبل بناتے ہیں۔
بنائی گئی میز خالی ہے۔ اس طرح، آگے بڑھیں اور INSERT استفسار کو اس میں اقدار شامل کرنے کے لیے استعمال کریں۔ اس معاملے کے لیے، ہم چند اندراجات داخل کرتے ہیں جیسا کہ درج ذیل میں دکھایا گیا ہے۔
اگر ہم 'منتخب' بیان چلاتے ہیں، تو ہمیں درج ذیل نتائج ملتے ہیں۔ نوٹ کریں کہ ریکارڈز کو بازیافت کرنے کا یہ طے شدہ طریقہ انہیں ٹیبلر شکل میں کیسے پیش کرتا ہے۔ کالم ہیڈر کے طور پر استعمال ہوتے ہیں اور ان کی متعلقہ اقدار قطاروں میں ظاہر ہوتی ہیں:
اگرچہ پچھلا طریقہ زیادہ تر کیسز کے لیے کام کرتا ہے، لیکن اسی ریکارڈ کو بازیافت کرنے کا ایک اور آپشن موجود ہے۔ اس معاملے کے لیے، ہم ایک پیوٹ ٹیبل بنانا چاہتے ہیں۔ لہذا، ہم 'ٹیبل فنک' ایکسٹینشن استعمال کرتے ہیں جو PostgreSQL ورژن 8.3+ کے ساتھ آتا ہے۔
تو، آئیے ایک 'ٹیبل فنک' ایکسٹینشن بناتے ہیں تاکہ ہم اسے استفسار میں کال کرتے وقت اسے فعال کریں۔ درج ذیل کمانڈ پر عمل کریں:
آپ کو معلوم ہو جائے گا کہ ایکسٹینشن کامیابی کے ساتھ فعال ہو گئی ہے جب آپ کو پچھلی تصویر جیسا آؤٹ پٹ ملتا ہے۔
ہمارے کراس ٹیب فنکشن کے لیے، آئیے اسے اس طرح بنائیں کہ پہلا کالم فیکلٹی ہو۔ ذیل میں مختلف فیکلٹیز ہیں جو ہمارے ٹیبل میں موجود ہیں۔ فیکلٹی کالم کے آگے، ہمارے پاس دوسرے کالم ہیں جو ہمارے ٹیبل کے زمرہ کالم میں مختلف اقدار کی نمائندگی کرتے ہیں۔ آخر میں، ہر زمرے کے لیے، ہمارے پاس مختلف زمروں میں حاصل کرنے والے طلباء کی تعداد ہے۔
ایسی پیوٹ ٹیبل حاصل کرنے کے لیے، درج ذیل نحو کا استعمال کریں:
منتخب کریں۔ * CROSSTAB سے ( کالم 1 کو منتخب کریں۔ ، کالم 2 ، کالم 3 ٹیبل_نام سے ORDER BY criteriaa' )AS new_name ( کالم 1 ڈیٹا_قسم ، کالم 2 ڈیٹا_قسم ، کالم_n ڈیٹا_قسم ) ;
مثال کے جدول کا استعمال کرتے ہوئے جو ہم نے بنایا ہے، ہماری کمانڈ اس طرح نظر آتی ہے:
اس سے پہلے کہ ہم نتائج دیکھیں، آئیے کراس ٹیب ماڈیول کمانڈ کیسے کام کرتی ہے اس پر ایک بریک ڈاؤن کرتے ہیں۔ سب سے پہلے، SELECT اسٹیٹمنٹ تین کالم لوٹاتا ہے۔ پہلے کالم کو قطار شناخت کنندہ کے طور پر سمجھا جاتا ہے۔ ہمارے معاملے میں، یہ 'فیکلٹی' کالم ہے۔ دوسرا کالم، جو کہ 'زمرہ' کالم ہے، پیوٹ ٹیبل کے زمروں کی نمائندگی کرتا ہے۔ آخر میں، تیسرے کالم میں زمرہ جات کی قدریں شامل ہیں۔ ہمارے معاملے میں، یہ ہر زمرے میں طلباء کی تعداد ہے۔
اس بات کو سمجھنے کے بعد، ایک بار جب ہم 'Enter' کی کو دباتے ہیں، تو ہمیں مندرجہ ذیل پیوٹ ٹیبل ملتا ہے:
لوٹے گئے پیوٹ ٹیبل کی بنیاد پر، ہم دیکھ سکتے ہیں کہ یہ 2-D اری کی طرح کام کرتا ہے جہاں SELECT اسٹیٹمنٹ میں پہلا کالم پہلی صف ہے اور دوسرا کالم طول و عرض میں دوسری صف ہے۔ تیسرے کالم میں دوسری صف کے عناصر کی قدریں شامل ہیں۔
نتیجہ
PostgreSQL کراس ٹیب ٹیبل کی اقدار کو پیوٹ ٹیبل کے طور پر پیش کرنے کے لیے اچھا ہے۔ کراس ٹیب ماڈیول کو استعمال کرنے کے لیے آپ کو اپنے SELECT سٹیٹمنٹ میں تین کالم واپس کرنے ہوں گے، اور اس پوسٹ نے اسے استعمال کرنے کے بارے میں ایک عملی مثال شیئر کی ہے۔ اس کے علاوہ، ہم نے وضاحت کی کہ کراس ٹیب ماڈیول پیوٹ ٹیبل بنانے میں کس طرح کام کرتا ہے جو 2-D صف کے طور پر وہی منطق استعمال کرتا ہے۔