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

Odpowiednik Group_concat w postgresql 8.2.11

"niezupełnie duplikat" w komentarzach powinien wskazywać właściwy kierunek:utwórz własny agregat funkcja . Najpierw będziesz potrzebować funkcji konkatenacji, która nie jest agregacją, coś takiego:

create function concat(t1 text, t2 text) returns text as $$
begin
    return t1 || t2;
end;
$$ language plpgsql;

Następnie możesz zdefiniować własną zagregowaną wersję tej funkcji:

create aggregate group_concat(
    sfunc    = concat,
    basetype = text,
    stype    = text,
    initcond = ''
);

Teraz możesz group_concat wszystko, czego chcesz:

select group_concat(s)
from t
group by g

Wykopałem to z moich archiwów, ale myślę, że powinno działać w wersji 8.2.

Pamiętaj, że wersja 8.2 nie jest już obsługiwana, więc możesz chcieć zaktualizować ją do co najmniej 8.4 tak szybko, jak to możliwe.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wykonać kopię zapasową i przywrócić tylko schemat w PostgreSQL?

  2. Jak wykonać kopię zapasową funkcji tylko w Postgresie

  3. Flask-Migrate nie wykrywa tabel

  4. Błąd Postgres po aktualizacji TimescaleDB na Ubuntu:plik nie został znaleziony

  5. Odejmij lata od daty w PostgreSQL