Postgres Group_Concat

Postgres Group Concat



Dalam MySQL, fungsi GROUP_CONCAT ialah fungsi agregat yang menggabungkan nilai daripada berbilang baris ke dalam satu rentetan. Ia biasanya digunakan untuk meruntuhkan berbilang baris ke dalam satu baris, menggabungkan data berkaitan.

Walau bagaimanapun, PostgreSQL tidak menyokong fungsi group_concat() secara asli tidak seperti MySQL. Oleh itu, tutorial ini meneroka bagaimana kita boleh mencapai fungsi yang serupa menggunakan fungsi string_agg().

Fungsi String_Agg PostgreSQL

Fungsi string_agg dalam PostgreSQL membolehkan kami menggabungkan nilai daripada berbilang baris ke dalam satu rentetan dan dipisahkan oleh parameter yang ditentukan.







Penggunaan sintaks fungsi adalah seperti yang ditunjukkan seperti berikut:



SELECT string_agg(column_name, delimiter)
DARI table_name
WHERE syarat
KUMPULAN MENGIKUT kumpulan_lajur;

Sintaks berikut adalah seperti yang dinyatakan seperti berikut:



nama_lajur – Ia menentukan nama lajur yang lajurnya ingin kami gabungkan.





pembatas – Ia mentakrifkan aksara pemisah yang digunakan apabila menyertai nilai input.

nama_jadual – Jadual sasaran yang mengandungi data.



kumpulan_lajur – Ia menentukan lajur yang digunakan untuk mengumpulkan data yang ditentukan.

Contoh Fungsi String_Agg PostgreSQL

Mari kita ambil contoh yang lebih praktikal untuk menggambarkan bagaimana fungsi itu berfungsi. Katakan kita mempunyai jadual yang mengandungi maklumat pelajar. Jadual mengandungi tiga lajur: id, nama dan subjek.

Jika kita ingin menggabungkan nama pelajar yang mendaftar dalam subjek yang sama, kita boleh menggunakan fungsi string_agg.

PILIH subjek, string_agg ( nama, ',' ) SEBAGAI pelajar
DARIPADA pelajar
KUMPULAN MENGIKUT subjek;

Sebaik sahaja kami menjalankan pertanyaan yang diberikan, ia harus mengembalikan set hasil dengan dua lajur utama: subjek dan pelajar. Pelajar mengandungi nama pelajar yang digabungkan untuk setiap mata pelajaran dan dipisahkan dengan koma.

CATATAN : Fungsi string_agg mengisih nilai yang digabungkan secara lalai. Anda boleh menambah klausa ORDER BY di dalam fungsi string_agg untuk mengekalkan susunan asal.

Itulah anda mempunyainya! Kaedah yang mudah dan cekap untuk mencapai kefungsian serupa yang disediakan oleh fungsi group_concat() dalam PostgreSQL.

Kesimpulan

Dalam tutorial ringkas tetapi berkesan ini, kami mempelajari cara menggunakan fungsi string_agg dalam PostgreSQL untuk mencapai fungsi serupa yang disediakan oleh fungsi group_concat() dalam MySQL.