Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql—嵌套JSON blob中的元素计数_Json_Postgresql - Fatal编程技术网

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

Postgresql—嵌套JSON blob中的元素计数,json,postgresql,Json,Postgresql,我有一个Postgres语句,它返回表的value列中json blob的提取/迭代。使用下面的查询,我可以得到一个一级的计数深度,但我不能再进一步计数了。我使用的是: select jsonb_array_length(value -> 'team') as team_count 这将返回正确的计数,但我似乎无法利用它来计算每个团队下的名称 在一个完美的世界中,我希望我的结果返回4行结果,如下所示(标题和匹配的姓名计数): 我将如何修改此查询以获得团队下的姓名计数?我尝试了各种各样的东

我有一个Postgres语句,它返回表的
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)