Re: LISTAGG à la Oracle in PostgreSQL

Juan Rodrigo Alejandro Burgos Mella <rodrigoburgosmella@gmail.com>

From: Juan Rodrigo Alejandro Burgos Mella <rodrigoburgosmella@gmail.com>
To: Pierre Forstmann <pierre.forstmann@gmail.com>
Cc: Paul A Jungwirth <pj@illuminatedcomputing.com>, "pgsql-general@lists.postgresql.org" <pgsql-general@lists.postgresql.org>
Date: 2026-03-10T19:57:39Z
Lists: pgsql-general
To do something similar, you would have to fork the source code and
implement the declarations with the same syntax, resulting in something
like Postracle.

Atte
JRBM

El mar, 10 mar 2026 a las 13:53, Pierre Forstmann (<
pierre.forstmann@gmail.com>) escribió:

> I agree but I just would like to know if there is way to be compatible
> with Oracle syntax using aggregate features in PostgreSQL
>
> Thanks.
>
> Le 09/03/2026 à 23:05, Paul A Jungwirth a écrit :
> > On Mon, Mar 9, 2026 at 1:21 PM Pierre Forstmann
> > <pierre.forstmann@gmail.com> wrote:
> >> Hello,
> >>
> >> I can write a LISTAGG aggregate for:
> >>
> >> create table emp(deptno numeric, ename text);
> >>
> >> SELECT deptno, LISTAGG(ename, ','::text ORDER BY ename) AS employees
> >> FROM   emp GROUP BY deptno ORDER BY deptno;
> >>
> >> I would like to know if is possible to create an aggregate LISTAGG that
> >> would work like in Oracle:
> >>
> >> SELECT deptno,
> >>          listagg(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees
> >> FROM emp
> >> GROUP BY deptno
> >> ORDER BY deptno;
> > I don't think you need a custom aggregate here. In Postgres you can say:
> >
> > select deptno,
> >        string_agg(ename, ',' ORDER BY ename) AS employees
> > FROM emp
> > GROUP BY deptno
> > ORDER BY deptno;
> >
>
>
>