Arangodb AQL聚合函数语法
像sum()这样的聚合函数的语法到底是什么 例如,采用以下结构:Arangodb AQL聚合函数语法,arangodb,Arangodb,像sum()这样的聚合函数的语法到底是什么 例如,采用以下结构: let json = { "ages": { "age": [ "20", "30", "40" ] } } 那 for age in json.ages.age return age 返回 ["20", "30", "40"] 以下所有代码段都返回Arango 2.0.4中调用函数“SUM()”时使用的“[1542]无效参数类型”: // LR let ages =
let json = {
"ages": {
"age": [
"20",
"30",
"40"
]
}
}
那
for age in json.ages.age return age
返回
["20", "30", "40"]
以下所有代码段都返回Arango 2.0.4中调用函数“SUM()”时使用的“[1542]无效参数类型”:
// 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))
正确的语法是什么
语法页()似乎没有任何相关示例
我能找到的最接近语法示例的东西是:
但它似乎有上面的语法,这对我来说是失败的
任何地方都有更详细的语法参考吗?您的方法是正确的,但是您在文档中遗漏了一点。;) 在SUM()的文档中,它表示: SUM(list):返回列表中的值之和。这要求列表中的元素是数字。忽略空值 (参考文件:) 注意“这要求列表中的元素是数字” 因此,JSON示例的列表中应该有数字,而不是字符串
let json = {
"ages": {
"age": [
20,
30,
40
]
}
}
let ages = (for age in json.ages.age return age)
return sum(ages)
将上述代码段复制并运行到AQL编辑器中应该会得到所需的结果:
[
90
]
当然,您也可以保持json不变,并通过相应地更改AQL查询将字符串转换为数字:
let json = {
"ages": {
"age": [
"20",
"30",
"40"
]
}
}
let ages = (for age in json.ages.age return TO_NUMBER(age))
return sum(ages)
有道理。使用另一种类似的语言自动进行这种类型的转换,但我甚至没有注意到提取过程是引用数字。我想,森林是为了树木。多谢。
let json = {
"ages": {
"age": [
"20",
"30",
"40"
]
}
}
let ages = (for age in json.ages.age return TO_NUMBER(age))
return sum(ages)