如何在 Azure DocumentDB 上进行聚合(AVG、SUM、MAX 等)?

How to do aggregation (AVG, SUM, MAX etc.) on Azure DocumentDB?

我正在试用 Azure DocumentDB 及其 documentation says aggregation is supported。事实上,我可以通过以下方式做到 COUNT

SELECT value COUNT(1) FROM c WHERE c.id = 'someid'

但是,如果我按照相同的语法进行其他类型的聚合,它似乎不起作用。

SELECT value MAX(value) FROM c WHERE c.id = 'someid'

报错。这与 MIN.

相同

似乎不​​支持聚合(即使文档另有说明)。或者有不同的方法吗?

要使 MAX() 正常工作,您需要在给定的 属性 上进行聚合。例如,如果您有一些文档带有 range 属性:

{
  "id": "max1",
  "range": 50
}
{
  "id": "max2",
  "range": 20
}

您将通过以下方式获得 range 的最大值:

SELECT MAX(c.range) from c

哪个returns:

[
  {
    "": 50
  }
]

SELECT VALUE MAX(c.range) from c

哪个returns:

[
  50
]

注意:在您的问题示例中,您使用了 c.valueVALUE 是保留字,因此您需要引用为 c['value']。例如:

SELECT VALUE MAX(c['value']) from c