Utiliser unnest
pour convertir le tableau en lignes, puis array_agg
pour construire un tableau à partir de l'id
s
Cela devrait ressembler à ceci :
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
Notez que HAVING Count(Distinct id) > 1
filtre les valeurs qui n'apparaissent pas une seule fois