sql >> Databasteknik >  >> RDS >> PostgreSQL

Group_concat motsvarighet i postgresql 8.2.11

"inte riktigt duplicerat" i kommentarerna bör peka dig i rätt riktning:skapa ditt eget aggregat funktion . Först behöver du en icke-aggregerad strängsammansättningsfunktion, ungefär så här:

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

Sedan kan du definiera din egen sammanlagda version av den funktionen:

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

Nu kan du group_concat allt du vill:

select group_concat(s)
from t
group by g

Jag grävde fram det här ur mina arkiv men jag tror att det borde fungera i 8.2.

Tänk på att 8.2 inte längre stöds så du kanske vill uppgradera till minst 8.4 så snart som möjligt.




  1. Få de första 10 oanvända manual_sequence-numren

  2. Hur gör man paginering med mybatis?

  3. kan vi deklarera markör utanför procedurer i mysql

  4. Hur man får återställningsmodellen för en databas i SQL Server med T-SQL