PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Concat-Zeilen in Postgres

Verwenden Sie GROUP BY und die Aggregatfunktion string_agg() :

SELECT nummer
      ,string_agg(vorname, E'\n') AS vorname
      ,string_agg(name, E'\n') AS name
      ,cash
FROM   mytable
GROUP  BY nummer, cash
ORDER  BY nummer, cash;

Ich habe cash hinzugefügt zu GROUP BY um auf den ursprünglichen Wert zu kommen und für den Fall abzusichern, dass es für die gleiche nummer anders wäre .

Zu Ihrem Kommentar:

SELECT nummer
      ,string_agg(vorname, E'\n') AS vorname
      ,string_agg(name, E'\n') AS name
      ,cash
FROM  (
   SELECT DISTINCT
          nummer, vorname, name, cash
   FROM   mytable
   ) AS m
GROUP  BY nummer, cash
ORDER  BY nummer, cash;