我通过以下密码查询获得了两个数组
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 ?
我通过以下密码查询获得了两个数组
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 ?
是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
在数组上迭代的变量。
请注意,value1
andvalue2
不是最好的名称:数组应该有一个复数名称(例如values1
)。