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

Cypher统计各节点不同关系类型报错,求正确实现方法

解决Neo4j Cypher统计节点不同关系类型数量的问题

错误原因

你写的查询报错是因为Cypher语法不支持RETURN node_id, DISTINCT rel_type这种写法——DISTINCT不能单独修饰单个返回列,它要么放在RETURN开头修饰整行结果,要么在聚合函数(比如count())内部使用。

正确写法示例

1. 获取每个节点的所有不同关系类型(每行一个节点+关系类型列表)

MATCH (n:Department)-[r]-()
WITH id(n) AS node_id, type(r) AS rel_type
RETURN node_id, collect(DISTINCT rel_type) AS unique_rel_types

如果需要每行显示一个节点的单个关系类型(自动去重),可以这样写:

MATCH (n:Department)-[r]-()
RETURN DISTINCT id(n) AS node_id, type(r) AS rel_type

2. 统计每个节点的不同关系类型数量(同时返回具体类型列表)

MATCH (n:Department)-[r]-()
RETURN id(n) AS node_id,
       count(DISTINCT type(r)) AS rel_type_count,
       collect(DISTINCT type(r)) AS unique_rel_types

或者用WITH先分组去重再统计,效果一致:

MATCH (n:Department)-[r]-()
WITH id(n) AS node_id, type(r) AS rel_type
RETURN node_id,
       count(DISTINCT rel_type) AS rel_type_count,
       collect(DISTINCT rel_type) AS unique_rel_types

说明

  • count(DISTINCT type(r))会对每个节点的关系类型去重后统计数量
  • collect(DISTINCT rel_type)会把每个节点的所有不同关系类型收集成一个列表,方便查看具体类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:48:22