GraphGists

随着 2016 年欧洲杯即将到来,让我们看看哪些足球俱乐部将有更多球员参加本次锦标赛。

MATCH (a)-[r]->(b) WHERE labels(a) <> [] AND labels(b) <> []
RETURN DISTINCT head(labels(a)) AS This, type(r) as To, head(labels(b)) AS That LIMIT 10
qcMEiir

使用当前数据集,我们可以轻松获取拥有最多球员被国家队征召的前 10 名俱乐部。

MATCH (c:Club)<-[PLAYS_FOR]-(Player)
RETURN c.name AS Club, count(*) AS Internationals
ORDER BY Internationals DESC LIMIT 10;

曼联以 13 名国际球员位居前三名,我们可以了解这些球员是谁以及他们来自哪里。

MATCH (c:Club)<-[PLAYS_FOR]-(p:Player)-[REPRESENTS]->(n:NationalTeam)
WHERE c.name='Manchester United'
RETURN n.name AS Country, count(*) AS Count, collect(p.name) AS Internationals
ORDER BY Count DESC;

但我们也可以查看某个国家队的成员效力于哪些俱乐部。

MATCH (c:Club)<-[PLAYS_FOR]-(p:Player)-[REPRESENTS]->(n:NationalTeam)
WHERE n.name='Spain'
RETURN c.name AS Club, count(*) AS Count, collect(p.name) AS Internationals
ORDER BY Count DESC;

这让我们不禁要问:哪个国家需要从更少的俱乐部中挑选球员来组建球队?

MATCH (c:Club)<-[PLAYS_FOR]-(Player)-[REPRESENTS]->(n:NationalTeam)
RETURN n.name AS Country, count(DISTINCT c) AS Distinct_Teams
ORDER BY Distinct_Teams;

结论是,英格兰球员似乎更了解彼此,因为他们在一年中习惯于为同一支球队一起比赛。

© . All rights reserved.