我想在我的CosmosDb上做一些报告我的查询是
Select Max(c.results.score) from c
这样就可以了,但是我想要最高分的id,然后我得到一个异常
Select c.id, Max(c.results.score) from c
“c.id”在选择列表中无效,因为它未包含在聚合函数中
pu3pd22g1#
你可以执行下面的查询来归档你所要求的内容(尽管在RU/执行时间方面可能不是很有效):
Select TOP 1 c.id, c.results.score from c ORDER BY c.results.score DESC
fae0ux8s2#
在Cosmos DB中本机不支持Group by,因此没有现成的方法来执行此查询。要使用开箱即用的功能实现这一点,您需要创建一个新的文档类型,其中包含聚合的输出,例如{“id”:1,“highestScore”:1000 }然后,您需要在应用程序中使用一个流程来保持更新。还有一个documentdb-lumenize,它允许您使用存储过程来执行此操作。我自己没有使用过它,但它可能值得作为上述解决方案的替代方案进行研究。Link是:https://github.com/lmaccherone/documentdb-lumenize
bhmjp9jg3#
Cosmos现在支持GROUP BY,所以你的查询应该是:
Select c.id, Max(c.results.score) from c Group By c.id
3条答案
按热度按时间pu3pd22g1#
你可以执行下面的查询来归档你所要求的内容(尽管在RU/执行时间方面可能不是很有效):
fae0ux8s2#
在Cosmos DB中本机不支持Group by,因此没有现成的方法来执行此查询。
要使用开箱即用的功能实现这一点,您需要创建一个新的文档类型,其中包含聚合的输出,例如
{“id”:1,“highestScore”:1000 }
然后,您需要在应用程序中使用一个流程来保持更新。
还有一个documentdb-lumenize,它允许您使用存储过程来执行此操作。我自己没有使用过它,但它可能值得作为上述解决方案的替代方案进行研究。
Link是:
https://github.com/lmaccherone/documentdb-lumenize
bhmjp9jg3#
Cosmos现在支持GROUP BY,所以你的查询应该是: