Postgresql—嵌套JSON blob中的元素计数
我有一个Postgres语句,它返回表的Postgresql—嵌套JSON blob中的元素计数,json,postgresql,Json,Postgresql,我有一个Postgres语句,它返回表的value列中json blob的提取/迭代。使用下面的查询,我可以得到一个一级的计数深度,但我不能再进一步计数了。我使用的是: select jsonb_array_length(value -> 'team') as team_count 这将返回正确的计数,但我似乎无法利用它来计算每个团队下的名称 在一个完美的世界中,我希望我的结果返回4行结果,如下所示(标题和匹配的姓名计数): 我将如何修改此查询以获得团队下的姓名计数?我尝试了各种各样的东
value
列中json blob的提取/迭代。使用下面的查询,我可以得到一个一级的计数深度,但我不能再进一步计数了。我使用的是:
select jsonb_array_length(value -> 'team') as team_count
这将返回正确的计数,但我似乎无法利用它来计算每个团队下的名称
在一个完美的世界中,我希望我的结果返回4行结果,如下所示(标题和匹配的姓名计数):
我将如何修改此查询以获得团队
下的姓名
计数?我尝试了各种各样的东西,但没有什么能让我接近
下面是Json示例
"team":[
{
"title":"Product Owner",
"names":[
"John Smith",
"Jane Doe"
]
},
{
"title":"Technical Project Manager",
"names":[
"Fred Flintstone",
"Barney Rubble"
]
},
{
"title":"Data Modeler"
},
{
"title":"Engineer"
}
你好像在找
SELECT
role -> 'title' AS team_role,
jsonb_array_length(role -> 'names') AS member_count
FROM jsonb_array_elements(value -> 'team') AS team(role)
不确定“团队下的标题元素”是什么意思。您是否正在寻找jsonb\u数组长度(值->“团队”)
?该计数是“团队”数组中的元素数(不管该数组中的对象是否有一个名为title
)@a_horse_with_no_name-我编辑了我的问题以增加清晰度,现在尝试你的建议。@a_horse_with_no_name-这可能是。。。看看这个,就是这样。。因为我们来自一个数据库,所以我将from‘from TABLE,jsonb_array_元素(value->‘team’)作为team(role)。这似乎完成了
SELECT
role -> 'title' AS team_role,
jsonb_array_length(role -> 'names') AS member_count
FROM jsonb_array_elements(value -> 'team') AS team(role)