Použijte unnest
pro převod pole na řádky a poté array_agg
k vytvoření pole z id
s
Mělo by to vypadat nějak takto:
SELECT v AS value_repeated,array_agg(id) AS is_repeated_on FROM
(select id,unnest(array) as v from my_table)
GROUP by v HAVING Count(Distinct id) > 1
Všimněte si, že HAVING Count(Distinct id) > 1
filtruje hodnoty, které se neobjeví ani jednou