PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Finden Sie doppelte Werte in der Array-Spalte

Verwenden Sie unnest um das Array in Zeilen umzuwandeln, und dann array_agg um ein Array aus der id zu erstellen s

Es sollte etwa so aussehen:

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

Beachten Sie, dass HAVING Count(Distinct id) > 1 filtert Werte, die nicht einmal vorkommen