Re: Arrays - selecting (and not removing) duplicates... - Mailing list pgsql-general

From Pól Ua Laoínecháin
Subject Re: Arrays - selecting (and not removing) duplicates...
Date
Msg-id CAF4RT5StDJy_9+UFy2nGazsajJp46dyDNL4GyDvc7H+w=o_jWQ@mail.gmail.com
Whole thread Raw
In response to Re: Arrays - selecting (and not removing) duplicates...  (hubert depesz lubaczewski <depesz@depesz.com>)
Responses Re: Arrays - selecting (and not removing) duplicates...
List pgsql-general
Hi Hubert, and thanks for your input!

> > I was just wondering if there is some (already written) function out
> > there that will drop this functionality into my lap?

> #v+
> create function array_dups(ANYARRAY) returns ANYARRAY as $$
>     select array( select i from unnest($1) i group by i having count(*) > 1 );
> $$ language sql;
> #v-

I'm a bit of a novice with PostgreSQL functions I'm afraid.

I can call your function this way:

SELECT ARRAY_DUPS(ARRAY[1, 2, 3, 4, 4]) AS dups;

and the answer is

dups
{4}

as I would expect. I can also do this:

SELECT ARRAY[1,3,4,1, 5,6,5, 67]  AS my_nums;
answer is
my_nums
array{1,3,4,1,5,6,5,67}

But, when I do this:

SELECT ARRAY_DUPS(SELECT ARRAY[1,3,4,1, 5,6,5, 67])

I get an error:

ERROR: syntax error at or near "SELECT" LINE 1:
SELECT ARRAY_DUPS(SELECT ARRAY[1,3,4,1, 5,6,5, 67])


I want to "feed" the result of a query into your function - is there
something special I have to do for this?

TIA and rgs,


Pól...

> depesz



pgsql-general by date:

Previous
From: hubert depesz lubaczewski
Date:
Subject: Re: Pg stuck at 100% cpu, for multiple days
Next
From: hubert depesz lubaczewski
Date:
Subject: Re: Can we get rid of repeated queries from pg_dump?