繁体   English   中英

是否可以使用 SubQuery 而不是自联接重写此 CosmosDb SQL 查询?

[英]Is it possible to rewrite this CosmosDb SQL query with SubQuery instead of self-join?

我在 CosmosDb 中有一组文档,我想对这些文档的嵌套集合执行 SQL 查询,但我一次只查询一个特定文档的数据。

示例文档

{
  "id": "d0769c6e-2334-4bb7-ae41-e45a8ac8896c",
  "Scores": [
    {
      "Name": "blabla",
      "Score": 10
    },
    {
      "Name": "blabla",
      "Score": 30
    }
  ]
}

目前我有以下有效的查询:

SELECT SUM(item.Score) 
FROM c
JOIN item IN c.Scores
WHERE c.id = "d0769c6e-2334-4bb7-ae41-e45a8ac8896c" AND item.Name = 'blabla'

我宁愿写这样的查询:

SELECT SUM(row.Score)
FROM row IN (SELECT c.Scores FROM c WHERE c.id = "d0769c6e-2334-4bb7-ae41-e45a8ac8896c")
WHERE row.Name = 'blabla'

但当然它不起作用。 您知道查询第二种方式的任何可能方式吗?

谢谢 !!

如果这对您有用,您可以尝试使用类似的方法:

SELECT SUM(item.Score)
FROM c
JOIN (SELECT s.Score, s.Name FROM s IN c.Scores ) as item
WHERE item.Name='blabla' 
and c.id='d0769c6e-2334-4bb7-ae41-e45a8ac8896c'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM