我试过了:
START u=node(25)
MATCH u-[p:captains]-(b:Boat)
OPTIONAL MATCH b-[r:sails]-(s:Sea)
OPTIONAL MATCH b-[p1:rides]-(u1:Person) WHERE p1.prop = 'foo'
OPTIONAL MATCH b-[p2:rides]-(u2:Person) WHERE p2.prop = 'bar'
OPTIONAL MATCH b-[p3:rides]-(u3:Person) WHERE p3.prop = 'baz'
RETURN b, count(s), count(u1), count(u2), count(u3)
但所有的计数都不正确。我期待以每个“b”开始的可选匹配开始的每一行的计数。有人帮吗?比如,3海,2名乘客是foo,5名是酒吧等等。
编辑:我觉得这更接近,但仍然错了......
START u=node(25)
MATCH u-[p:captains]-(b:Boat)
WITH b
OPTIONAL MATCH b-[r:sails]-(s:Sea)
OPTIONAL MATCH b-[p1:rides{prop:'foo'}]-(u1:Person)
OPTIONAL MATCH b-[p2:rides{prop:'bar'}]-(u2:Person)
OPTIONAL MATCH b-[p3:rides{prop:'baz'}]-(u3:Person)
RETURN c, count(s), count(u1), count(u2), count(u3)
似乎给了我一些类似于所有相关信息的计数......
答案 0 :(得分:2)
答案是更换每个
count(
与
count(DISTINCT
删除空值!