0

我通过以下密码查询获得了两个数组

  return p.home,p1.away
    collect(distinct toInteger(p.score[0])) as value1,
    collect(distinct toInteger(p1.score[1])) as value2

在这里, value1=[1,2,3,4] 和 value=[3,0,6,2] 我想要:

总和 (1+2+3+4+3+0+6+2) 作为 totalValue ?

4

1 回答 1

0

distinct必需品吗?如果不是,您可以简单地使用:

RETURN sum(toInteger(p.score[0]) + toInteger(p1.score[1])) as value2

如果你必须先使用distinct,你可以像这样对数组中的元素求和:

WITH
  [1, 2, 3, 4] AS value1, 
  [3, 0, 6, 2] AS value2
RETURN
  [i IN range(0, length(value1)-1) | value1[i] + value2[i]]

这使用该range函数来定义一个i在数组上迭代的变量。

请注意,value1andvalue2不是最好的名称:数组应该有一个复数名称(例如values1)。

于 2018-01-07T12:25:35.413 回答