从Postgresql中的json元素数组中提取值

hi3rlvi2  于 2023-05-06  发布在  PostgreSQL
关注(0)|答案(1)|浏览(375)

我试图从Postgresql中的一个对象数组中提取一个值数组,本质上是Map数组并提取。
例如,我有一个值:

[{"id":123,"quantity":4,"amount":180},
 {"id":563,"quantity":1,"amount":675},
 {"id":563,"quantity":1,"amount":875},
 ...]

我想只提取数组中的数量,例如:[180,675,875...]
在postgres中有没有简单的方法可以做到这一点?
提前感谢你的任何帮助

hmtdttj4

hmtdttj41#

使用jsonb_array_elements将数组提取为一组JSON值,然后使用array_agg重新聚合数组:

select array_agg(elm->>'amount')
from mytable t
CROSS JOIN jsonb_array_elements(t.my_json) elm
group by my_json

Demo here

相关问题