将Postgres JSONB数组转换为单列中以逗号分隔的列表
我在表中有一个JSONB casted列,我想在单个列中表示为逗号分隔的列表。我已经尝试了一百万种不同的方法,结果都失败了。我在博士后的文档中找不到任何能解决这种特殊情况的东西,希望能得到一些帮助 该表看起来有点像这样:将Postgres JSONB数组转换为单列中以逗号分隔的列表,json,postgresql,aggregate-functions,jsonb,Json,Postgresql,Aggregate Functions,Jsonb,我在表中有一个JSONB casted列,我想在单个列中表示为逗号分隔的列表。我已经尝试了一百万种不同的方法,结果都失败了。我在博士后的文档中找不到任何能解决这种特殊情况的东西,希望能得到一些帮助 该表看起来有点像这样: date | order_id | sales_reps 2019-12-01 | 1234 | [{"id": 100, "user": "Jane Doe"}, {"id": 101, "user": "John Doe"}] 我想将其呈现为: dat
date | order_id | sales_reps
2019-12-01 | 1234 | [{"id": 100, "user": "Jane Doe"}, {"id": 101, "user": "John Doe"}]
我想将其呈现为:
date | order_id | sales_reps
2019-12-01 | 1234 | Jane Doe, John Doe
我能够相对接近:
select
date,
order_id,
(select jsonb_agg(t -> 'user') from jsonb_array_elements(sales_reps::jsonb) as x(t)) as sales_reps
from table
但就我的一生而言,我似乎无法获得我想要的输出——我尝试了大量聚合器和jsonb函数,但都没有成功 使用
->
操作符获取json值作为文本和字符串\u agg()
聚合:
select
date,
order_id,
(
select string_agg(t->>'user', ',')
from jsonb_array_elements(sales_reps::jsonb) as x(t)
) as sales_reps
from my_table
select
date,
order_id,
(
select string_agg(t->>'user', ',')
from jsonb_array_elements(sales_reps::jsonb) as x(t)
) as sales_reps
from my_table