用Neo4j汇总计数

用Neo4j汇总计数,neo4j,cypher,Neo4j,Cypher,我有导演过电影。这些电影有不同的类型和一些演员主演。我想找到一部由导演排序的电影(电影类型的数量,电影中主演的演员数量) 这是可行的,但现在我想对gc和sc求和,并根据结果订购电影。如何做到这一点?我认为您可以在RETURN语句中添加所需的总和,然后按其排序结果: MATCH(n) -- (f:Film) WHERE n.name = "Steven Spielberg" MATCH (f) - [r] -> (g:Genre) OPTIONAL MATCH (f) - [r2] ->

我有导演过电影。这些电影有不同的类型和一些演员主演。我想找到一部由导演排序的电影(电影类型的数量,电影中主演的演员数量)


这是可行的,但现在我想对
gc
sc
求和,并根据结果订购电影。如何做到这一点?

我认为您可以在
RETURN
语句中添加所需的总和,然后按其排序结果:

MATCH(n) -- (f:Film)
WHERE n.name = "Steven Spielberg"
MATCH (f) - [r] -> (g:Genre)
OPTIONAL MATCH (f) - [r2] -> (s:Starring)
WITH n, f, count(r) as gc, count(r2) as sc
RETURN n, f, gc, sc, gc+sc AS S
ORDER BY S DESC

我认为您可以在
RETURN
语句中添加所需的总和,然后按其排序结果:

MATCH(n) -- (f:Film)
WHERE n.name = "Steven Spielberg"
MATCH (f) - [r] -> (g:Genre)
OPTIONAL MATCH (f) - [r2] -> (s:Starring)
WITH n, f, count(r) as gc, count(r2) as sc
RETURN n, f, gc, sc, gc+sc AS S
ORDER BY S DESC

小心基数!如果有多个:流派和多个:主演,您的计数将包括重复的,并且将不准确。要么在匹配后立即获取相关计数(最佳),要么使用具有不同值的计数(如
count(distinct r)
)。小心基数!如果有多个:流派和多个:主演,您的计数将包括重复的,并且将不准确。要么在匹配后立即获取相关计数(最佳),要么使用具有不同值的计数(如
count(distinct r)
)。