From: | Pól Ua Laoínecháin <linehanp(at)tcd(dot)ie> |
---|---|
To: | |
Cc: | PostgreSQL General <pgsql-general(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Arrays - selecting (and not removing) duplicates... |
Date: | 2021-08-30 14:43:54 |
Message-ID: | CAF4RT5StDJy_9+UFy2nGazsajJp46dyDNL4GyDvc7H+w=o_jWQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | hubert depesz lubaczewski | 2021-08-30 14:45:51 | Re: Can we get rid of repeated queries from pg_dump? |
Previous Message | hubert depesz lubaczewski | 2021-08-30 14:36:21 | Re: Pg stuck at 100% cpu, for multiple days |