PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Concat lignes dans Postgres

Utilisez GROUP BY et la fonction d'agrégation 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;

J'ai ajouté de l'cash au GROUP BY pour retrouver la valeur d'origine et se prémunir contre le cas où elle serait différente pour le même nummer .

Quant à votre commentaire :

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;