You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cypher中对多个数组的所有元素进行求和计算?

解决方法

当然可以在Cypher里对数组内的值进行求和!针对你给出的场景,这里有两种直观的实现方式:

方法一:合并数组后展开求和

这种方法先把两个数组合并成一个数组,再通过UNWIND展开所有元素,最后用SUM()计算总和,逻辑清晰易懂:

// 先执行你的原有查询获取两个数组,再合并处理
MATCH p, p1  // 这里补充你实际的匹配逻辑
WITH p.home as home, p1.away as away,
     collect(distinct toInteger(p.score[0])) as value1,
     collect(distinct toInteger(p1.score[1])) as value2
// 合并两个数组
WITH home, away, value1 + value2 as combinedArray
// 展开数组中的每个元素
UNWIND combinedArray as num
// 计算所有元素的总和
RETURN home, away, sum(num) as totalValue

方法二:用Reduce分别累加后求和

如果你不想展开数组,可以用REDUCE()函数分别遍历两个数组进行累加,再将两个结果相加:

MATCH p, p1
WITH p.home as home, p1.away as away,
     collect(distinct toInteger(p.score[0])) as value1,
     collect(distinct toInteger(p1.score[1])) as value2
// 对两个数组分别使用reduce求和,再相加得到总和
RETURN home, away,
       reduce(s = 0, num IN value1 | s + num) + reduce(s = 0, num IN value2 | s + num) as totalValue

两种方法都能得到你想要的totalValue,你可以根据自己的查询场景选择更合适的方式~

内容的提问来源于stack exchange,提问作者Suman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:32:47