العمل مع وحدة PostgreSQL Crosstab
يعد وجود غرفة لتحديد الطريقة التي تريد بها تمثيل بياناتك أمرًا مفيدًا. مع PostgreSQL، على الرغم من أن الطريقة الافتراضية هي الحصول على البيانات في شكل جدولي، إلا أن الوحدة الجدولية تمنحك خيارًا آخر. يمكنك إنشاء الجداول المحورية باستخدام الأعمدة 'المحددة' من جدول PostgreSQL للحصول على عرض تقديمي أفضل.
تأتي الميزة المذهلة كامتداد لإصدار PostgreSQL 8.3. يوفر ملحق 'tablefunc' وظيفة الجدول الترافقي، مما يجعل من الممكن الحصول على الجداول المحورية كمجموعة النتائج الخاصة بك. دعونا نعطي مثالا.
أولاً نقوم بإنشاء جدول 'النتائج' بثلاثة أعمدة باستخدام الأمر التالي:
الجدول الذي تم إنشاؤه فارغ. وبالتالي، تابع واستخدم الاستعلام INSERT لإضافة القيم إليه. في هذه الحالة، نقوم بإدخال بعض الإدخالات كما هو موضح في ما يلي:
إذا قمنا بتشغيل عبارة 'select'، فسنحصل على النتائج التالية. لاحظ كيف تعرض هذه الطريقة الافتراضية لاسترداد السجلات في شكل جدول. يتم استخدام الأعمدة كرؤوس وتظهر القيم الخاصة بها في الصفوف:
على الرغم من أن الطريقة السابقة تعمل في معظم الحالات، إلا أن هناك خيارًا آخر لاسترداد نفس السجلات. في هذه الحالة، نريد إنشاء جدول محوري. لذلك، نستخدم ملحق 'tablefunc' الذي يأتي مع إصدار PostgreSQL 8.3+.
لذا، فلنقم بإنشاء ملحق 'tablefunc' لتمكينه عندما نسميه في الاستعلام. قم بتنفيذ الأمر التالي:
ستعرف أنه تم تمكين الامتداد بنجاح بمجرد حصولك على نتيجة مثل تلك التي لدينا في الصورة السابقة.
بالنسبة لوظيفة الجدول الترافقي، فلنجعل العمود الأول هو الكلية. يوجد أدناه الكليات المختلفة الموجودة في طاولتنا. بجوار عمود الكلية، لدينا أعمدة أخرى تمثل القيم المختلفة في عمود الفئة في جدولنا. وأخيرًا، لكل فئة، لدينا عدد الطلاب الذين وصلوا إلى الفئات المختلفة.
لتحقيق مثل هذا الجدول المحوري، استخدم بناء الجملة التالي:
يختار * من الجدول المتقاطع ( 'اختر العمود 1.' , العمود 2 , العمود 3 من اسم الجدول الترتيب حسب المعايير أ' )باسم new_name ( عمود 1 data_type , عمود 2 data_type , column_n data_type ) ;
باستخدام جدول المثال الذي أنشأناه، يبدو أمرنا كما يلي:
قبل أن نرى النتائج، دعونا نلقي نظرة تفصيلية على كيفية عمل أمر الوحدة الجدولية. أولاً، تقوم عبارة SELECT بإرجاع ثلاثة أعمدة. يتم التعامل مع العمود الأول كمعرف الصف. في حالتنا، هو عمود 'أعضاء هيئة التدريس'. العمود الثاني، وهو عمود 'الفئة'، يمثل فئات الجدول المحوري. وأخيرًا، يحتوي العمود الثالث على قيم الفئات. وفي حالتنا، هو عدد الطلاب في كل فئة.
بعد هذا الفهم، بمجرد الضغط على مفتاح 'Enter'، نحصل على الجدول المحوري على النحو التالي:
استنادًا إلى الجدول المحوري الذي تم إرجاعه، يمكننا أن نرى أنه يعمل مثل مصفوفة ثنائية الأبعاد حيث يكون العمود الأول في عبارة SELECT هو المصفوفة الأولى والعمود الثاني هو المصفوفة الثانية في البعد. يحتوي العمود الثالث على قيم عناصر المصفوفة الثانية.
خاتمة
يعد الجدول الترافقي لـ PostgreSQL مفيدًا لتمثيل قيم الجدول كجدول محوري. يجب عليك إرجاع ثلاثة أعمدة في عبارة SELECT الخاصة بك لاستخدام الوحدة الجدولية، وقد شاركت هذه المشاركة مثالًا عمليًا حول كيفية استخدامها. بالإضافة إلى ذلك، شرحنا كيفية عمل الوحدة الجدولية في إنشاء الجدول المحوري الذي يستخدم نفس المنطق الذي تستخدمه المصفوفة ثنائية الأبعاد.