AQL聚合函数语法

问题描述 投票:3回答:1

诸如sum()之类的聚合函数的语法到底是什么?

例如,采用以下结构:

let json = {
    "ages": {
    "age": [
    "20",
    "30",
    "40"
    ]
    }
}

和那个

for age in json.ages.age return age

返回

 ["20", "30", "40"]

以下所有代码段均在Arango 2.0.4中返回“ [1542]在调用函数'SUM()'中使用的无效参数类型:”]]

// LR
let ages = (for age in json.ages.age return age)
return sum(ages)

// LR
let ages = (
    for age in json.ages.age  
    return age
)
return sum((for age in json.ages.age return age))

// R
return sum((for age in json.ages.age return age))

正确的语法是什么?

语法页(http://www.arangodb.org/manuals/current/Aql.html#AqlFunctionsList)似乎没有任何相关的示例。

我能找到的最接近语法示例的地方是:https://www.arangodb.org/foxx

controller.get("/revenue/:year", function (req, res) {
  var query = "RETURN SUM((FOR bill IN billcollection FILTER bill.year == @year     RETURN     bill.amount))"; 
  var stmt = db._createStatement({ "query": query});
  stmt.bind("year",parseInt(req.params("year"),10));
  var c = stmt.execute();
  res.json(c);
});

但是似乎上面的语法对我来说是失败的。

在任何地方都有更详细的语法参考吗?

诸如sum()之类的聚合函数的语法到底是什么?例如,采用以下结构:let json = {“ ages”:{“ age”:[“ 20”,“ 30”,“ 40”]}}和...

arangodb
1个回答
4
投票

您的方法是正确的,但是您错过了文档中的一个小地方。 ;)

© www.soinside.com 2019 - 2024. All rights reserved.