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

如何在Neo4j中按属性分组后获取属性最大值并更新节点状态

完整Cypher解决方案

直接用以下语句即可实现需求:

// 按Group Name分组,获取每组的所有节点及该组最大ID
MATCH (g:Groups)
WITH g.groupName AS groupName, COLLECT(g) AS groupNodes, MAX(g.ID) AS maxId
// 遍历每组节点,根据ID是否为最大值更新Status
UNWIND groupNodes AS node
SET node.Status = CASE WHEN node.ID = maxId THEN 'Active' ELSE 'Inactive' END

语句说明:

  • 分组计算阶段:MATCH (g:Groups) 匹配所有Groups标签节点;WITH子句按groupName分组,把每组节点收集到groupNodes列表,同时算出该组的最大ID值maxId。
  • 更新状态阶段:UNWIND把每组的节点列表拆成单个节点;通过CASE条件判断,ID等于组内最大值的节点保留Active状态,其余节点设为Inactive。

额外提示:

  • 确认ID属性为数值类型(整数/浮点数),否则MAX()函数无法正确计算最大值。
  • 若要验证结果,可在语句末尾添加RETURN node.groupName, node.ID, node.Status查看更新后的节点状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:10:25