Re: DISTINCT in STRING_AGG

From: Geoff Winkless <pgsqladmin(at)geoff(dot)dj>
To: Sterpu Victor <victor(at)caido(dot)ro>
Cc: PostgreSQL General <pgsql-general(at)postgresql(dot)org>
Subject: Re: DISTINCT in STRING_AGG
Date: 2015-11-29 20:51:32
Message-ID: CAEzk6fcQa9d7yS+NTh+X09PJZyoJ54kfzVORp8oZ4BCMTCkG-g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 29 November 2015 at 18:59, Sterpu Victor <victor(at)caido(dot)ro> wrote:

> I can't skip the ordering.
> I'm sure aqjs3 is the one that produces the duplication.
> I guess subqueries are the only option, like this:

​Well you could look at the intarray ​extension and a combination of
array_agg, uniq() and string_to_array:

http://www.postgresql.org/docs/current/static/intarray.html

but that's probably sledgehammer:nut time.

Not sure why you need to order the values you're getting back by something
other than the values themselves - is there a reason you wouldn't want the
"children"​ set to be ordered numerically? You can still order the outer
query by whatever you like, or you can order the aggregate by the values
themselves, it's just the DISTINCT inside the aggregate query requires that
an internal ORDER includes the ordering term in the result.

​Geoff​

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Geoff Winkless 2015-11-29 20:52:52 Re: DISTINCT in STRING_AGG
Previous Message Sterpu Victor 2015-11-29 18:59:38 Re: DISTINCT in STRING_AGG