【发布时间】:2021-12-06 20:43:59
【问题描述】:
我必须进行查询,返回一个或多个俱乐部,在哪里打球最多的不代表国家的球员,来自哪里。
我的查询工作正常,但我想过滤,所以我的结果是只有尺寸最大的俱乐部。
目前最大的规模是 4 人,我有 4 个俱乐部,应该有 4 名球员。
我想到过滤掉它的唯一方法是最后使用LIMIT 1,但随后,我剪掉了三个梅花,它们也填充了谓词。
MATCH (c: Club)<-[r: PLAYS_FOR]-(p: Player)-[r2: 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
RETURN c,list_players,country,size ORDER BY size DESC LIMIT 1
编辑:
我设法做了这样的事情,不知道它是否是最佳的,但它正在工作:
MATCH (c: Club)<-[r: PLAYS_FOR]-(p: Player)-[r2: 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 c,list_players,country,size ORDER BY size DESC LIMIT 1
WITH size
MATCH (c: Club)<-[r: PLAYS_FOR]-(p: Player)-[r2: REPRESENTS]->(n: NationalTeam)
WHERE c.country<>n.country
WITH size,c,collect(p.name) as list_players,n.country as country,size(collect(p.name)) as size2 WHERE size(collect(p.name)) = size
RETURN c,list_players,country,size
【问题讨论】:
标签: neo4j