如何过滤结果,然后在Neo4j Cypher中对其进行计数?

如何过滤结果,然后在Neo4j Cypher中对其进行计数?,neo4j,cypher,Neo4j,Cypher,我需要四个不同的计数:结果总数,然后是三个类别的结果数。例如,如果我有四个学生,我希望他们按年级排序,我希望:(1)学生总数,(2)一年级学生总数,(3)二年级学生总数,(4)三年级学生总数。如果我有学生节点,其中s.grade=1、s.grade=1、s.grade=2和s.grade=3,是否有一种方法可以得到只返回我想要的结果而不正确返回其他信息的结果?这不包括学生总数,但有一种方法可以聚合每个年级的学生人数: START n=node(*) WHERE HAS(n.grade) AND

我需要四个不同的计数:结果总数,然后是三个类别的结果数。例如,如果我有四个学生,我希望他们按年级排序,我希望:(1)学生总数,(2)一年级学生总数,(3)二年级学生总数,(4)三年级学生总数。如果我有学生节点,其中s.grade=1、s.grade=1、s.grade=2和s.grade=3,是否有一种方法可以得到只返回我想要的结果而不正确返回其他信息的结果?

这不包括学生总数,但有一种方法可以聚合每个年级的学生人数:

START n=node(*) 
WHERE HAS(n.grade) AND n.grade > 0 AND n.grade <= 3
RETURN DISTINCT n.grade AS grade, count(n.grade) AS count
START n=node(*)
其中有(n级)和n级>0和n级