Postgresql-嵌套JSON blob中的元素计数



我有一个Postgres语句,它返回对表的value列中的json blob的提取/迭代。我可以使用下面的查询获得一级深度的计数,但我无法再进行更深的计数。我使用的是:

select jsonb_array_length(value -> 'team') as team_count

这返回了正确的计数,但我似乎无法利用它来计算每个团队下的names

在一个完美的世界里,我希望我的结果返回4行这样的结果(标题和匹配的名称计数(:

Product Owner, 2
Technical Product Manager, 2
Data Modeler, 0 
Engineer, 0

我该如何修改此查询以获得team下的names计数?我尝试了各种各样的东西,但没有什么能让我接近。

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)

最新更新