如何在Azure DocumentDB上进行聚合(平均值、总和、最大值等)?
我正在试用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()起作用,您需要对给定的
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
作为属性名称确实存在问题。最后一个例子效果很好。非常感谢。