sql >> Databáze >  >> RDS >> PostgreSQL

Group_concat ekvivalent v postgresql 8.2.11

"není zcela duplicitní" v komentářích by vás mělo nasměrovat správným směrem:vytvořte si svůj vlastní agregát funkce . Nejprve budete potřebovat neagregovanou funkci zřetězení řetězců, něco takového:

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

Poté můžete definovat svou vlastní souhrnnou verzi této funkce:

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

Nyní můžete group_concat vše, co chcete:

select group_concat(s)
from t
group by g

Vyhrabal jsem to ze svých archivů, ale myslím, že by to mělo fungovat v 8.2.

Mějte na paměti, že verze 8.2 již není podporována, takže možná budete chtít co nejdříve upgradovat alespoň na 8.4.




  1. Jak zabránit současnému spouštění úloh serveru SQL

  2. Změny v my.cnf se neprojeví (Ubuntu 16.04, mysql 5.6)

  3. Jak počítat dotazy uživatelů?

  4. Rownum v postgresql