![](/img/trans.png)
[英]Cypher query in neo4j to find specific node with most paths matching pattern
[英]Neo4j: query to find 2 node with the most
我試圖找出哪一對演員在我的數據庫中的大多數電影中一起表演過,但我的查詢一直返回空白,有什么建議嗎?
MATCH (actor1:Actor)<-[st1:ACTED_IN]-(mv1:Movie)-[st2:ACTED_IN]->(actor2:Actor)
RETURN distinct actor1,actor2,count(mv1)
看起來你寫了相反方向的關系箭頭。
它可能是從演員到電影:
MATCH (actor1:Actor)-[st1:ACTED_IN]->(mv1:Movie)<-[st2:ACTED_IN]-(actor2:Actor)
RETURN distinct actor1, actor2, count(mv1)
盡管您使用的是 distinct 您的查詢將返回重復項,因為以下兩個是不同的記錄:
actor1, actor2, movie_count
actor2, actor1, movie_count
要擺脫這些重復條目,您可以使用比較節點 ID 的簡單技巧,例如:
MATCH (actor1:Actor)-[:ACTED_IN]->(mv1:Movie)<-[:ACTED_IN]-(actor2:Actor)
WHERE id(actor1)>id(actor2)
RETURN actor1,actor2,count(mv1)
要查找在大多數電影中出演的演員:
MATCH (actor1:Actor)-[:ACTED_IN]->(mv1:Movie)<-[:ACTED_IN]-(actor2:Actor)
WHERE id(actor1)>id(actor2)
RETURN actor1,actor2,count(mv1) AS movie_count
ORDER BY movie_count DESC
LIMIT 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.