首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cypher嵌套收集查询不能正确聚合

Cypher嵌套收集查询不能正确聚合
EN

Stack Overflow用户
提问于 2014-10-11 17:26:49
回答 1查看 538关注 0票数 2

我想执行这个查询

代码语言:javascript
复制
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

但我不明白为什么它没有正确地将初创企业与它们的市场聚集在一起。这是我的查询结果:

代码语言:javascript
复制
+-----+-----+------------+---------+
|  p  | inv | startups   | mctotal |
+-----+-----+------------+---------+
|  p  |  11 | id: 1      |    7    |
|     |     | markets: 1 |         |
|     |     |            |         |
|     |     | id: 1      |         |
|     |     | markets: 2 |         |
|     |     |            |         |
|     |     | id: 2      |         |
|     |     | markets: 3 |         |
|     |     |            |         |
|     |     | id: 2      |         |
|     |     | markets: 4 |         |

..。诸若此类。

我想得到的结果如下:

代码语言:javascript
复制
+-----+-----+---------------+---------+
|  p  | inv | startups      | mctotal |
+-----+-----+---------------+---------+
|  p  |  11 | id: 1         |    7    |
|     |     | markets:[1,2] |         |
|     |     |               |         |
|     |     | id: 2         |         |
|     |     | markets:[3,4] |         |

我希望我的要求是清楚的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-12 11:42:41

  1. 不要在聚合中使用distinct
  2. 不要将返回的值聚合为简单值(这是您的主要问题)
  3. 不匹配两次

下面是一个应该更好工作的变体,您没有共享示例图,所以我无法尝试它。

代码语言:javascript
复制
 MATCH (p)-->(s:Startup)-->(m:Market)
 WITH p, s, COLLECT(m) as markets, count(m) as mcount
 ORDER BY id(s)
 RETURN p, COUNT(DISTINCT s) as inv, 
           COLLECT({id: id(s), markets: markets}) as startups, 
           sum(mcount) as mctotal
 ORDER BY inv DESC
 LIMIT 10
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26317276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档