我使用聚合函数编写了一个存储过程。
SELECT
MIN(c.Reading) AS MinReading
, MAX(c.Reading) AS MaxReading
, COUNT(1) AS RecordCount
FROM
Readings c
WHERE
ReadingId = 1234
AND ReadingDate >= fromDate
AND ReadingDate <= toDate
注意:此示例中的ReadingId是分区键。
相同的参数值返回不同的结果。它似乎返回的部分聚合类似于与web portal中运行聚合相关的警告。
这是存储过程的限制,还是我可以设置一个可以阻止部分聚合的选项?
答案 0 :(得分:2)
您可以检查queryDocuments
调用是否返回延续令牌,如果结果不为空(或)后处理min的最小值/最大值/部分结果的计数总和,则丢弃结果计算全局聚合。
Cosmos DB始终为每页结果返回部分聚合。客户端SDK在内部分页并计算这些部分结果的完整聚合。由于存储过程中的查询是低级API,因此您可能会获得中间部分聚合。但是,如果您继续对查询结果进行分页,则最终结果将是完整/正确的。