我正在尝试在一个查询中从集合中选择最小时间戳和最大时间戳。
所有变体,例如
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中是否存在这种可能性?
答案 0 :(得分:0)
看一下documentation中的value关键字,看起来您在一个查询中不能有多个value关键字。
如果select语句中包含逗号,则会出现错误。
像UDF或SP这样的声音是更适合您的问题的解决方案。
请记住,类似这样的select max(c._ts), min(c._ts) from c
会引发错误:Cross partition query only supports 'VALUE <AggreateFunc>' for aggregates
。
这表明,如果您指定了分区,则可以使它正常工作,但是我只是通过指定分区键尝试了它,但仍然失败,并出现相同的错误。