Postgres Group_Concat

Postgres Group Concat



في MySQL ، تعد الدالة GROUP_CONCAT دالة مجمعة تربط القيم من صفوف متعددة في سلسلة واحدة. يتم استخدامه بشكل شائع لطي صفوف متعددة في صف واحد ، والجمع بين البيانات ذات الصلة.

ومع ذلك ، لا تدعم 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.