Postgres Group_Concat

Postgres Group Concat



MySQL:ssä GROUP_CONCAT-funktio on koontifunktio, joka ketjuttaa useiden rivien arvot yhdeksi merkkijonoksi. Sitä käytetään yleisesti useiden rivien tiivistämiseen yhdeksi riviksi yhdistäen toisiinsa liittyvät tiedot.

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 opiskelijat
opiskelijoilta
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.