PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Concat wiersze w Postgres

Użyj GROUP BY oraz funkcja agregująca 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;

Dodałem cash do GROUP BY aby uzyskać pierwotną wartość i zabezpieczyć się przed przypadkiem, w którym byłaby inna dla tego samego nummer .

Co do twojego komentarza:

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najłatwiejszy sposób na zwrócenie zestawu rekordów z procedury składowanej PostgreSQL?

  2. Ranga na podstawie sekwencji dat

  3. Jak zaktualizować głęboko zagnieżdżony obiekt JSON na podstawie kryteriów filtrowania w Postgresie?

  4. 3 sposoby sprawdzenia typu danych kolumny w PostgreSQL

  5. Entity Framework 6 z Npgsql