Użyj unnest
przekonwertować tablicę na wiersze, a następnie array_agg
aby zbudować tablicę z id
s
Powinno to wyglądać mniej więcej tak:
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
Zwróć uwagę, że HAVING Count(Distinct id) > 1
filtruje wartości, które nie pojawiają się ani razu