sql >> Database >  >> RDS >> PostgreSQL

Group_concat equivalent in postgresql 8.2.11

De "niet helemaal duplicaat" in de opmerkingen zouden je in de goede richting moeten wijzen:maak je eigen aggregaat functie . Eerst heb je een niet-geaggregeerde tekenreeksaaneenschakelingsfunctie nodig, zoiets als dit:

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

Vervolgens kunt u uw eigen geaggregeerde versie van die functie definiëren:

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

Nu kunt u group_concat alles wat je wilt:

select group_concat(s)
from t
group by g

Ik heb dit uit mijn archieven opgegraven, maar ik denk dat het zou moeten werken in 8.2.

Houd er rekening mee dat 8.2 niet langer wordt ondersteund, dus misschien wilt u zo snel mogelijk upgraden naar minimaal 8.4.




  1. INNER JOIN gebruiken om SQL Server-tabellen te combineren en weer te geven in ASP.NET-webformulieren

  2. Tabel- en kolomnamen definiëren als argumenten in een plpgsql-functie?

  3. Een snelle blik op de numerieke functies van SQL Server

  4. OPMERKINGEN voor volgorde na het uitvoeren van migratie in rails op postgresql-toepassing