Neo4j电影教程数据库查询:找演员最多的电影及合作最多演员对
Neo4j电影数据库查询解决方案
1. 查询参演演员数量最多的电影
注意:Neo4j官方电影教程数据库中,电影的名称属性是title而非你写的name,以下是正确的查询语句:
MATCH (actor:Person)-[:ACTED_IN]->(movie:Movie) RETURN movie.title AS 电影名称, COUNT(actor) AS 演员数量 ORDER BY 演员数量 DESC LIMIT 1
语句说明:
- 通过
MATCH匹配所有演员与参演电影的关联关系 - 按电影分组,用
COUNT(actor)统计每部电影的参演演员数 - 按演员数量降序排序后,用
LIMIT 1取出数量最多的那部电影
如果需要列出所有电影及其演员数(不限制只取第一),去掉LIMIT 1即可。
2. 查询合作参演电影数量最多的演员对
MATCH (actor1:Person)-[:ACTED_IN]->(movie:Movie)<-[:ACTED_IN]-(actor2:Person) WHERE actor1 <> actor2 AND id(actor1) < id(actor2) RETURN actor1.name AS 演员1, actor2.name AS 演员2, COUNT(movie) AS 合作电影数量 ORDER BY 合作电影数量 DESC LIMIT 1
语句说明:
- 匹配共同参演同一部电影的两个不同演员
WHERE actor1 <> actor2 AND id(actor1) < id(actor2)用于避免重复统计同一对演员(比如A-B和B-A会被视为同一组,只统计一次)- 统计每对演员的合作电影数量,降序排序后取第一对就是合作最多的组合
内容的提问来源于stack exchange,提问作者user15428511
相关产品推荐
相关产品推荐

