Neo4j 如何重写分组时返回大量节点的密码查询

Neo4j 如何重写分组时返回大量节点的密码查询,neo4j,cypher,Neo4j,Cypher,我需要这个查询来匹配不同的课程和学生。这会向我返回大量数据,但当我返回c.name、s.name、count(*)时,结果是正确的 match (t:TeacherEntity{name: 'Teacher2'}) -[:teaches] ->(c:CourseEntity) <- [sc:student_attends_course] - (s:StudentEntity) with c,s match (c) - [:cour

我需要这个查询来匹配不同的课程和学生。这会向我返回大量数据,但当我返回c.name、s.name、count(*)时,结果是正确的

  match (t:TeacherEntity{name: 'Teacher2'}) -[:teaches] ->(c:CourseEntity)
         <- [sc:student_attends_course] - (s:StudentEntity)
        with c,s
        match (c) - [:course_assignments] -> (a:AssignmentEntity) 
        optional match (a) <- [subm:student_submission] - (s)
        where subm is null or subm.mark < 4
        return c, s,count(*)
match(t:TeacherEntity{name:'Teacher2'})-[:teachers]>(c:CourseEntity)
(a:转让实体)

可选匹配(a)您在原始查询中是否使用了Distinct?c.name和s.name的值是否唯一?还有,我不知道你在问什么。当我返回c.name、s.name、count(*)时,您说
,结果是正确的
,这与您在密码中的结果类似。如果不使用DISTINCT,则应在相同的行中返回相同的项。所以不确定“错误”或“正确”的结果应该是什么样子。你能提供样本数据来说明问题,以及“错误”和“正确”的结果吗?