PostgreSQL ei kuitenkaan tue natiivisti group_concat()-funktiota toisin kuin MySQL. Siksi tämä opetusohjelma tutkii, kuinka voimme saavuttaa samanlaisen toiminnallisuuden käyttämällä string_agg()-funktiota.
PostgreSQL String_Agg-funktio
PostgreSQL:n string_agg-funktio antaa meille mahdollisuuden ketjuttaa useiden rivien arvot yhdeksi merkkijonoksi, ja se erotetaan määritetyllä parametrilla.
Funktioiden syntaksin käyttö on esitetty seuraavasti:
SELECT merkkijono_agg(sarakkeen_nimi, erotin)
FROM taulukon_nimi
MISSÄ olosuhteet
GROUP BY ryhmittelysarakkeet;
Seuraava syntaksi ilmaistaan seuraavasti:
sarakkeen_nimi – Se määrittää sarakkeen nimen, jonka sarakkeen haluamme ketjuttaa.
erotin – Se määrittelee erotinmerkin, jota käytetään syötearvojen yhdistämisessä.
taulukon_nimi – Kohdetaulukko, joka sisältää tiedot.
ryhmittely_sarakkeet – Se määrittää sarakkeet, joita käytetään määritettyjen tietojen ryhmittelyyn.
Esimerkki PostgreSQL String_Agg -funktiosta
Otetaan käytännöllisempi esimerkki havainnollistaaksemme funktion toimintaa. Oletetaan, että meillä on taulukko, joka sisältää opiskelijatiedot. Taulukossa on kolme saraketta: id, nimi ja aihe.
Jos haluamme ketjuttaa samaan aineeseen ilmoittautuneiden opiskelijoiden nimet, voimme käyttää string_agg-funktiota.
SELECT aihe, merkkijono_agg ( nimi, ',' ) AS opiskelijatopiskelijoilta
RYHMÄ aiheen mukaan;
Kun suoritamme annetun kyselyn, sen pitäisi palauttaa tulosjoukko, jossa on kaksi pääsaraketta: aihe ja opiskelijat. Opiskelijat sisältävät kunkin aineen opiskelijoiden ketjutetut nimet ja erotetaan toisistaan pilkulla.
HUOMAUTUS : String_agg-funktio lajittelee ketjutetut arvot oletuksena. Voit lisätä ORDER BY -lauseen string_agg-funktioon säilyttääksesi alkuperäisen järjestyksen.
Siinä se on! Suoraviivainen ja tehokas tapa saavuttaa samanlainen toiminnallisuus, jonka tarjoaa Group_concat()-funktio PostgreSQL:ssä.
Johtopäätös
Tässä lyhyessä mutta tehokkaassa opetusohjelmassa opimme käyttämään PostgreSQL:n string_agg-funktiota samanlaisen toimivuuden saavuttamiseksi, jonka mySQL:n group_concat()-funktio tarjoaa.