Re: How to remove duplicates in an array and maintain the order?

From: Thomas Kellerer <shammat(at)gmx(dot)net>
To: pgsql-sql(at)lists(dot)postgresql(dot)org
Subject: Re: How to remove duplicates in an array and maintain the order?
Date: 2023-07-08 16:19:10
Message-ID: 320adc31-e193-14b9-e9b9-80625099b401@gmx.net
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Shaozhong SHI schrieb am 08.07.2023 um 17:30:
> How to remove duplicated values in an array and maintain the order?

You can use distinct on ()

select array_agg(val order by idx)
from (
select distinct on (val) val, idx
from unnest(array[7,7,5,6,2,2,3,8,7,5,4,1,5]) with ordinality as t(val,idx)
order by val, idx
) x

This picks the first occurrance of each element.
If you want to get the last occurrance of each value use "order by val, idx desc" in the inner select

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Shaozhong SHI 2023-07-08 18:55:35 Finding out types of error
Previous Message Marcos Pegoraro 2023-07-08 15:50:54 Re: How to remove duplicates in an array and maintain the order?