ومع ذلك ، لا تدعم PostgreSQL أصلاً وظيفة group_concat () على عكس MySQL. لذلك ، يستكشف هذا البرنامج التعليمي كيف يمكننا تحقيق وظيفة مماثلة باستخدام دالة string_agg ().
دالة PostgreSQL String_Agg
تسمح لنا وظيفة string_agg في PostgreSQL بربط القيم من صفوف متعددة في سلسلة واحدة ويتم فصلها بواسطة المعلمة المحددة.
يتم توضيح استخدام بناء جملة الدالة كما يلي:
حدد string_agg (اسم_عمود ، محدد)
من table_name
أين الظروف
GROUP BY grouping_columns ؛
يتم التعبير عن بناء الجملة التالي على النحو التالي:
اسم العمود - تحدد اسم العمود الذي نرغب في ربط العمود به.
محدد - يحدد الحرف الفاصل الذي يتم استخدامه عند ضم قيم الإدخال.
اسم الطاولة - الجدول الهدف الذي يحتوي على البيانات.
grouping_columns - تحدد الأعمدة المستخدمة لتجميع البيانات المحددة.
مثال دالة PostgreSQL String_Agg
دعونا نأخذ مثالاً عمليًا أكثر لتوضيح كيفية عمل الوظيفة. افترض أن لدينا جدولاً يحتوي على معلومات الطالب. يحتوي الجدول على ثلاثة أعمدة: المعرف والاسم والموضوع.
إذا كنا نرغب في ربط أسماء الطلاب الذين سجلوا في نفس الموضوع ، فيمكننا استخدام الدالة string_agg.
حدد الموضوع ، string_agg ( اسم، '،' ) طلاب ASمن الطلاب
تجميع حسب الموضوع ؛
بمجرد تشغيل الاستعلام المحدد ، يجب أن يُرجع مجموعة نتائج مع عمودين رئيسيين: الموضوع والطلاب. يحتوي الطلاب على أسماء الطلاب المتسلسلة لكل مادة ويتم الفصل بينهم بفاصلة.
ملحوظة : تقوم الدالة string_agg بفرز القيم المتسلسلة افتراضيًا. يمكنك إضافة عبارة ORDER BY داخل دالة string_agg للحفاظ على الترتيب الأصلي.
ها أنت ذا! طريقة مباشرة وفعالة لتحقيق وظيفة مماثلة توفرها وظيفة group_concat () في PostgreSQL.
خاتمة
في هذا البرنامج التعليمي الموجز والفعال ، تعلمنا كيفية استخدام دالة string_agg في PostgreSQL لتحقيق وظيفة مماثلة توفرها وظيفة group_concat () في MySQL.