Tomēr PostgreSQL sākotnēji neatbalsta grupu_concat() funkciju atšķirībā no MySQL. Tāpēc šajā apmācībā ir izpētīts, kā mēs varam sasniegt līdzīgu funkcionalitāti, izmantojot funkciju string_agg().
PostgreSQL String_Agg funkcija
PostgreSQL funkcija string_agg ļauj mums vairāku rindu vērtības apvienot vienā virknē, un to atdala ar norādīto parametru.
Funkciju sintakses lietojums ir parādīts šādi:
SELECT string_agg(kolonnas_nosaukums, atdalītājs)
NO tabulas_nosaukums
KUR nosacījumi
GROUP BY grupēšanas_kolonnas;
Šī sintakse ir izteikta šādi:
kolonnas_nosaukums – Tas norāda kolonnas nosaukumu, kuras kolonnu mēs vēlamies savienot.
norobežotājs – Tas nosaka atdalīšanas rakstzīmi, kas tiek izmantota, savienojot ievades vērtības.
tabulas_nosaukums – mērķa tabula, kurā ir dati.
grupēšana_kolonnas – Tas norāda kolonnas, kas tiek izmantotas norādīto datu grupēšanai.
PostgreSQL String_Agg funkcijas piemērs
Ņemsim praktiskāku piemēru, lai ilustrētu, kā funkcija darbojas. Pieņemsim, ka mums ir tabula, kurā ir informācija par studentu. Tabulā ir trīs kolonnas: id, nosaukums un tēma.
Ja vēlamies saistīt to skolēnu vārdus, kuri iestājās tajā pašā priekšmetā, varam izmantot funkciju string_agg.
ATLASĪT tēmu, string_agg ( vārds, ',' ) AS studentiNO studentiem
GROUP BY BY;
Kad tiek izpildīts dotais vaicājums, tam jāatgriež rezultātu kopa ar divām galvenajām kolonnām: priekšmets un studenti. Studenti satur sasaistītus studentu vārdus katram priekšmetam un ir atdalīti ar komatu.
PIEZĪME : funkcija string_agg pēc noklusējuma kārto sasaistītās vērtības. Lai saglabātu sākotnējo secību, funkcijā string_agg varat pievienot klauzulu ORDER BY.
Tur jums tas ir! Vienkārša un efektīva metode līdzīgas funkcionalitātes sasniegšanai, ko nodrošina PostgreSQL funkcija group_concat().
Secinājums
Šajā īsajā, bet efektīvajā apmācībā mēs uzzinājām, kā PostgreSQL izmantot funkciju string_agg, lai sasniegtu līdzīgu funkcionalitāti, ko nodrošina funkcija group_concat() MySQL.