我有例如下面的 JSON 文件:
[
{
"id": "document1",
"source": {
"pass": {
"ploy": {
"school": [{
"sourcen": "data"
},
{
"sourcen": "data1"
},
{
"sourcen": "data1"
}
]
}
}
}
},
{
"id": "document2",
"source": {
"pass": {
"ploy": {
"school": [{
"sourcen": "data1"
},
{
"sourcen": "data2"
},
{
"sourcen": "data3"
},
{
"sourcen": "data3"
}
]
}
}
}
}
]
我想在“学校”向量中区分,所以输出将是:
[
{
"$1": [
"data",
"data1"
]
},
{
"$1": [
"data1",
"data2",
"data3"
]
}
]
CosmosDB 中的 ARRAY() 函数可用于检索此数据,但我使用的应用程序不支持它。
我现在正在运行以下查询,但这是不正确的,因为它不同于所有值:
SELECT DISTINCT sourcen FROM [tablename.source.pass.ploy.school]
你能帮忙吗?是否有任何 SQL 查询可以从不同的向量输出不同的数据?
您可以按“sourcen”字段中的值对数据进行分组,然后使用
STRING_AGG()
连接每个组的不同值。
SELECT STRING_AGG(DISTINCT s, ',') AS $1
FROM c
JOIN s IN c.source.pass.ploy.school
GROUP BY s.sourcen