JSON 个数组中对象的值

JSON values from objects inside an Array

所以我的 postgres (v.10) 数据库中有这个 json 列。

它可以看起来像这样:

[{"_destroy": false, "gruppe_id": "verwalter"}, {"_destroy": "", "gruppe_id": "budget_nur_anzeigen"}]

我只想从连接在新列中的 gruppe_id 个元素中获取值,如下所示:

Gruppe_ID
verwalter, budget_nur_anzeigen

Fiddle

您需要取消嵌套数组,然后返回聚合:

select m.id, 
       (select string_agg(c.item ->> 'gruppe_id', ',')
        from jsonb_array_elements(m.context_data::jsonb) as c(item)) as gruppe_id
from mutations m;