我想执行这个查询
MATCH (p:Person)-->(s:Startup)
WITH DISTINCT p
MATCH (p)-->(s:Startup)-->(m:Market)
WITH DISTINCT p, s, m, COLLECT(m) as markets
ORDER BY id(s)
RETURN DISTINCT p, COUNT(DISTINCT s) as inv,
COLLECT({id: id(s), markets: markets}) as startups,
count (m) as mctotal
ORDER BY inv DESC
LIMIT 10
但我不明白为什么它不能正确地将初创公司与其市场聚合起来。这是我查询的结果:
+-----+-----+------------+---------+
| p | inv | startups | mctotal |
+-----+-----+------------+---------+
| p | 11 | id: 1 | 7 |
| | | markets: 1 | |
| | | | |
| | | id: 1 | |
| | | markets: 2 | |
| | | | |
| | | id: 2 | |
| | | markets: 3 | |
| | | | |
| | | id: 2 | |
| | | markets: 4 | |
... 等等。
我想要获得的结果如下:
+-----+-----+---------------+---------+
| p | inv | startups | mctotal |
+-----+-----+---------------+---------+
| p | 11 | id: 1 | 7 |
| | | markets:[1,2] | |
| | | | |
| | | id: 2 | |
| | | markets:[3,4] | |
我希望很清楚我的要求。