PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Equivalente a Group_concat no postgresql 8.2.11


O "não é bem duplicado" nos comentários deve apontar na direção certa:crie seu próprio agregado função . Primeiro, você precisará de uma função de concatenação de string não agregada, algo assim:
create function concat(t1 text, t2 text) returns text as $$
begin
    return t1 || t2;
end;
$$ language plpgsql;

Então você pode definir sua própria versão agregada dessa função:
create aggregate group_concat(
    sfunc    = concat,
    basetype = text,
    stype    = text,
    initcond = ''
);

Agora você pode group_concat tudo o que você quer:
select group_concat(s)
from t
group by g

Eu cavei isso dos meus arquivos, mas acho que deve funcionar no 8.2.

Lembre-se de que o 8.2 não é mais suportado, portanto, você pode querer atualizar para pelo menos 8.4 o mais rápido possível.