如何在Azure Cosmos DB中的一个查询中选择多个聚合值

问题描述 投票:0回答:1

我试图在一个查询中从集合中选择最小时间戳和最大时间戳。

所有变种,如

 SELECT value min(c._ts), value max(c._ts) FROM c
 SELECT value min(c._ts), max(c._ts) FROM c
 SELECT values min(c._ts), max(c._ts) FROM c

产生错误

: {"code":400,"body":"{\"code\":\"BadRequest\",\"message\":\"Message: {\\\"errors\\\":[{\\\"severity\\\":\\\"Error\\\",\\\"location\\\":{\\\"start\\\":23,\\\"end\\\":24},\\\"code\\\":\\\"SC1001\\\",\\\"message\\\":\\\"Syntax error, incorrect syntax near ','.\\\"}]}\\r\\nActivityId: ad845eae-8b97-4f24-b372-dd5ce8f4d2a6, Microsoft.Azure.Documents.Common/2.0.0.0\"}","activityId":"ad845eae-8b97-4f24-b372-dd5ce8f4d2a6"} 

Azure Cosmos DB中是否存在这种可能性?

azure-cosmosdb
1个回答
0
投票

查看关于value关键字的documentation,看起来你不能在一个查询中拥有多个值关键字。

如果你在select语句中有逗号,那么你会得到一个错误。

听起来像UDF或SP是一个更适合您的问题的解决方案。

请记住,像这样的select max(c._ts), min(c._ts) from c会抛出错误:Cross partition query only supports 'VALUE <AggreateFunc>' for aggregates

这表明如果你指定分区,那么你将能够使它工作,但我只是尝试指定分区键,它仍然失败并出现相同的错误。

© www.soinside.com 2019 - 2024. All rights reserved.