gpt4 book ai didi

arangodb - 使用 AQL 迭代聚合结果返回预期平均值/总和值的空值

转载 作者:行者123 更新时间:2023-12-02 01:40:34 24 4
gpt4 key购买 nike

我想在我的 arangoDB (2.3.1) 实例上执行 AQL 查询来计算两个平均值 (average_value) 之间的差值(res 可能是另一个子查询结果):

LET last = (FOR r in res
FILTER DATE_MONTH(r.date) == 1 AND DATE_YEAR(r.date) == 2015
COLLECT name = r.name INTO g
RETURN {"name":name,"average_value":AVERAGE(g[*].r[*].value)}
)
LET current = (FOR r in res
FILTER DATE_MONTH(r.date) == 2 AND DATE_YEAR(r.date) == 2015
COLLECT name = r.name INTO g
RETURN {"name":name,"average_value":AVERAGE(g[*].r[*].value)}
)
FOR l IN last
FOR c IN current
FILTER c.name == l.name
RETURN {"name":c.name,"delta":c.average_value-l.average_value}

但即使只是

FOR l IN last
RETURN l

我确实得到了“名称”,但“average_value”将为空。这是否按设计工作,或者我如何从子查询访问聚合值?

最佳答案

在无法访问数据的情况下,在我看来是 .r[*].value 导致了问题。

在定义了 r 的两个 FOR 循环中,r 是对单个文档的引用。在单个文档上使用扩展运算符 ([*]) 将生成 null,因为 [*] 运算符可用于列表/仅限数组。

您可以做的是仅使用 .r.value 而不是 .r[*].value。然后 arangodb 数据库应该做你想做的事。

关于arangodb - 使用 AQL 迭代聚合结果返回预期平均值/总和值的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28836321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com