Arrays 如何迭代sqlite中嵌套json对象中的数组?

Arrays 如何迭代sqlite中嵌套json对象中的数组?,arrays,json,sqlite,Arrays,Json,Sqlite,假设我有一个sqlite表features,其中有一列data,其中包含json对象 CREATE TABLE features(id INTEGER主键,data json) 现在,示例数据对象可能是: {"A": {"B": {"coordinates":[ {"x":1, "y":10}, {"x":10, "

假设我有一个sqlite表
features
,其中有一列
data
,其中包含json对象

CREATE TABLE features(id INTEGER主键,data json)

现在,示例数据对象可能是:

{"A":
   {"B":
      {"coordinates":[
         {"x":1, "y":10},
         {"x":10, "y":2},
         {"x":12, "y":12}
       ]
    }
}
现在,
坐标
数组中json对象的数量可以因行而异。一些文档可能有3个坐标(上面的示例),而其他文档可能有5个或更多坐标

对于每一行或每一文档,我希望能够只迭代
x
值,并找到最小值,与
y
值相同。所以这个例子的结果是x为1,y为2

我可以使用
json\u each
获取数组中的所有json对象,但我不能仅为一行提取x。我试过:

select value from features, json_each(json_extract(features.data, '$.A.B.coordinates'));
但是,这似乎返回所有行的“all”
coordinate
json对象。如何迭代一个文档的数组并从中提取值,以便为一个文档选择最小值或最大值?

json\u each(json\u extract())
之后再次使用
json\u extract()
提取每个
x
y
并聚合:

SELECT f.id, 
       MIN(json_extract(value, '$.x')) x, 
       MIN(json_extract(value, '$.y')) y
FROM features f, json_each(json_extract(f.data, '$.A.B.coordinates'))
GROUP BY f.id
请参阅。