【问题标题】:ArangoDB: Collect syntax statement error when adding the sum function for an collection attributeArangoDB:为集合属性添加求和函数时收集语法语句错误
【发布时间】:2022-11-03 18:59:51
【问题描述】:

我正在尝试添加边缘集合中的所有金额,并从名为 Transaction 的边缘集合中的日期属性中提取日期。

但是,我在收集语句中遇到错误。

for d in Transaction 
        filter d._to == "Account/123" 
        COLLECT aggregate ct =count(d._id),
        aggregate totamnt=sum(d.Amount), 
        aggregate daysactive= count(distinct date_trunc(d.Time))
return distinct {"Incoming Accounts":length, "Days Active": daysactive}

【问题讨论】:

    标签: arangodb collect


    【解决方案1】:

    如果我理解您想要正确实现的目标,这是实现它的查询:

    FOR d IN Transaction
            FILTER d._to == "Account/123" 
            COLLECT AGGREGATE length = COUNT_UNIQUE(d._id), 
                              totamnt = SUM(d.Amount),
                              daysactive = COUNT_UNIQUE(DATE_TRUNC(d.Time, "day"))
            RETURN { 
                "Incoming Accounts": length , 
                "Days Active": LENGTH(daysactive), 
                "Total Amount": totamnt 
            }
    

    注意:distinct 不是必须的,我在返回值中包含了总金额,并指定了“天”作为截断日期的单位。

    我对我的一个集合进行了稍微改编的测试,并得到了合理的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多