У меня есть столбец JSONB в PostgresSQL, как показано ниже, я хочу удалить дубликаты
{ "other": null, "values": [ "REDUCE_STRESS", "LOSE_WEIGHT", "INCREASE_ACTIVITY", "EAT_HEALTHIER", "IMPROVE_SLEEP", "EAT_HEALTHIER", "INCREASE_ENERGY" ] }
Самое простое - создать функцию:
create function remove_dupes(p_array jsonb) returns jsonb as $$ select jsonb_agg(distinct e) from jsonb_array_elements(p_array) as t(e); $$ language sql;
Затем вы можете использовать это в выражении UPDATE:
update the_table set the_column = jsonb_set(the_column, '{values}', remove_dupes(the_column -> 'values')) where ...