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

Neo4j Cypher查询如何返回外籍球员数量最多的所有俱乐部

Cypher查询获取外籍球员数量最多的所有俱乐部

问题说明

你需要返回俱乐部所在国家与球员国家队所属国家不一致的球员数量最多的所有俱乐部,原有查询使用LIMIT 1只能返回单条结果,自行编写的二次MATCH方案虽然可用,但存在重复扫描数据的性能损耗。

优化查询方案(仅扫描一次数据,性能更优)

MATCH (c: Club)<-[:PLAYS_FOR]-(p: Player)-[:REPRESENTS]->(n: NationalTeam)
WHERE c.country <> n.country
// 先统计每个俱乐部符合要求的外籍球员数量
WITH c, collect(p.name) AS list_players, n.country AS country, size(collect(p.name)) AS size
// 聚合所有俱乐部统计结果同时计算最大外籍球员数
WITH collect({club: c, players: list_players, country: country, size: size}) AS club_stats, max(size) AS max_size
// 拆分聚合结果筛选出所有达到最大值的俱乐部
UNWIND club_stats AS stat
WHERE stat.size = max_size
RETURN stat.club AS c, stat.players AS list_players, stat.country AS country, stat.size AS size

方案说明

  • 无需重复执行MATCH扫描节点与关系,仅一次计算即可拿到所有符合要求的结果,相比二次MATCH的写法性能提升明显,尤其在数据量大的场景下优势更突出
  • 逻辑与你的原始统计规则完全对齐,保证结果一致性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:24:00