将Postgres JSONB数组转换为单列中以逗号分隔的列表

将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

我在表中有一个JSONB casted列,我想在单个列中表示为逗号分隔的列表。我已经尝试了一百万种不同的方法,结果都失败了。我在博士后的文档中找不到任何能解决这种特殊情况的东西,希望能得到一些帮助

该表看起来有点像这样:

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