Group ConCAT Function

Hallo zusammen ich versuche meherer Spalten zusammenzusfassen die die gleiche ID haben.

hier ein Beispiel wie ich es mir vorstelle.

Ausganges Tabellen mit Join zusammengefasst:

spalte1 | spalte2
ID1 | Text1
ID1 | Text2
ID2 | Text3
ID2 | Text4

Zieltabelle

Spalte1 | Spalte2
ID1 | Text1, Text2
ID2 | Text3, Text4

Ich wollte dies mit Group_Concat versuchen doch diese Funktion scheint nicht zu existieren.

SELECT
b.ID,
group_concat(a.Text) as Spalte2
FROM Tabelle_b b Join Tabelle_a a ON a.id = b_id
where a.id=4



Kann mir jemand hierbei helfen?

LG
Benandro

Schau mal hier: http://stackoverflow.com/questions/2560946/postgresql-group-concat-equivalent

Du suchst array_agg() bzw. string_agg(). Beachte, daß die Syntax in MySQL logisch falsch und kapott ist: in Abfragen mit Aggregationen (group_concat ist auch eine Aggregation) müssen alle Spalten im Resultat entweder aggregiert oder gruppiert sein. In aktuellen Versionen von MySQL würde Deine Abfrage nun einen Fehler bringen. Ältere Versionen liefern u.U. einfach falsche Ergebnisse.

Egal, Du hast die Lösung.

Ich habe es mal getestet, vielen Dank schonmal.

ich bekomme nun FAST das gewünschte Ergebnis, doch der Text nimmt nur 255 Zeichen auf leider sind einige Textfelder viel großer man muss sich die Texte ähnlich lang wie Emails vorstellen.
Gibt es eine Möglichkeit unendlich viele Zeichen aufzunehmen oder zumindest mehrere Tausend?


Aktueller Stand:

SELECT st.id, array_to_string(array_agg(a.a_body),’; ') c1
FROM ticket st Join article a ON st.id = a.ticket_id
WHERE st.id = 4
GROUP by st.id;

Das ist schon so, da muss man nichts machen.

Verwendest Du pgAdmin? Das schneidet die Werte bei 256 Zeichen ab in der Darstellung:
https://www.pgadmin.org/svnrepo/pgadmin3-dev/docs/en_US/_build/html/options-query_tool.html

Du kannst aber direkt string_agg() verwenden:

SELECT st.id, string_agg(a.a_body, '; ') c1
FROM ticket st Join article a ON st.id = a.ticket_id
WHERE st.id = 4
GROUP by st.id;

Das hatte ich versucht doch leider kommt die Meldung:

FEHLER: Funktion string_agg(character varying, unknown) existiert nicht

Und ja ich verwende PG Admin,
gibt es ein besseres Tool?

welche PG-Version hast Du? 9.0 hat es zumindest schon, 8.4 scheinbar nicht, das ist aber auch schon 2 Jahre aus dem Support. Mit anderen Worten: bereits komplett kompostiert.