我正在掌握 Postgres >= 9.5 中的 JSONB 功能(并且很喜欢它),但遇到了障碍。我读过有关连接 JSON 字段的功能,所以'{"a":1}' || '{"b":2}'
创造{"a":1,"b":2}
,但我想在多行的同一字段中执行此操作。例如。:
select row_concat_??(data) from table where field = 'value'
我发现了jsonb_object_agg
听起来像是我想要的功能,除了docs https://www.postgresql.org/docs/9.5/static/functions-aggregate.html显示它需要多个参数,而我只有一个。
我有什么想法如何做到这一点?jsonb_agg
成功创建了一个数组,所以感觉我真的很接近。
在深入研究 Postgres 中的自定义聚合后,我得到以下结果:
DROP AGGREGATE IF EXISTS jsonb_merge(jsonb);
CREATE AGGREGATE jsonb_merge(jsonb) (
SFUNC = jsonb_concat(jsonb, jsonb),
STYPE = jsonb,
INITCOND = '{}'
)
然后可以用作:
SELECT group_id, jsonb_merge(data) FROM table GROUP BY group_id
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)