如何在Azure DocumentDB上进行聚合(平均值、总和、最大值等)?

如何在Azure DocumentDB上进行聚合(平均值、总和、最大值等)?,azure,azure-cosmosdb,Azure,Azure Cosmosdb,我正在试用Azure DocumentDB及其应用程序。事实上,我可以通过以下方式进行计数: SELECT value COUNT(1) FROM c WHERE c.id = 'someid' 然而,如果我按照相同的语法进行其他类型的聚合,它似乎不起作用 SELECT value MAX(value) FROM c WHERE c.id = 'someid' 给出了错误。这和MIN是一样的 看起来不支持聚合(尽管文档中另有说明)。或者有不同的方法来做吗?要使MAX()起作用,您需要对给定的

我正在试用Azure DocumentDB及其应用程序。事实上,我可以通过以下方式进行计数:

SELECT value COUNT(1) FROM c WHERE c.id = 'someid'
然而,如果我按照相同的语法进行其他类型的聚合,它似乎不起作用

SELECT value MAX(value) FROM c WHERE c.id = 'someid'
给出了错误。这和MIN是一样的

看起来不支持聚合(尽管文档中另有说明)。或者有不同的方法来做吗?

要使
MAX()
起作用,您需要对给定的属性进行聚合。例如,如果您有一些文档具有
范围
属性:

{
  "id": "max1",
  "range": 50
}
{
  "id": "max2",
  "range": 20
}
您可以通过以下方式获得
范围的最大值:

SELECT MAX(c.range) from c
返回:

[
  {
    "$1": 50
  }
]
[
  50
]

返回:

[
  {
    "$1": 50
  }
]
[
  50
]
注意:在您的问题示例中,您使用
c.value
VALUE
是一个保留字,因此您需要引用为
c['VALUE']
。例如:

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

在您的示例中,您计算的最大值是多少
COUNT
返回对象的计数,但是
MAX
是否需要一个属性来计算?是的,这是我的问题
MAX(c.value)
不起作用。您的示例没有
MAX(c.value)
。好的,我更新了问题以澄清问题。当您在属性引用中取消
c.
时,这是一个无效语法错误。保留关键字
value
作为属性名称确实存在问题。最后一个例子效果很好。非常感谢。