Neo4j中的分组字段

Neo4j中的分组字段,neo4j,cypher,Neo4j,Cypher,我正在使用Neo4j 1.8.3 我正在运行一个返回如下数据的查询 A 1 X A 2 Y B 3 Z C 4 Q C 5 X 我希望数据以如下方式呈现: A 1,2 X,Y B 3 Z C 4,5 Q,X 请让我知道我们如何才能做到这一点是在塞弗。 提前感谢。如果您的原始退货条款是: RETURN a, b, c 尝试: 如果您的原始退货条款是: RETURN a, b, c 尝试: 下面是我在面对这个问题时所做的: 据我所知,你不可能一次就完成

我正在使用Neo4j 1.8.3

我正在运行一个返回如下数据的查询

A   1  X
A   2  Y
B   3  Z
C   4  Q
C   5  X
我希望数据以如下方式呈现:

A 1,2  X,Y
B 3    Z
C 4,5  Q,X
请让我知道我们如何才能做到这一点是在塞弗。
提前感谢。

如果您的原始退货条款是:

RETURN a, b, c
尝试:


如果您的原始退货条款是:

RETURN a, b, c
尝试:


下面是我在面对这个问题时所做的:

据我所知,你不可能一次就完成这项任务。您需要使用WITH语句来分解查询,让cypher中途收集一些节点,并对后续匹配执行收集操作。我这是什么意思?考虑这个例子:

如果您当前的查询如下所示:

MATCH (a)--(b)--(c) RETURN a,b,c
然后您必须将其更改为以下内容

MATCH {{ Perform match here just for node type 'a' }} WHERE {{ conditions if any }}
WITH a
MATCH (a)--{{ Perform match for 'b' and 'c' here using 'a' }}
RETURN a,collect(b) as first, collect(c) as second
ORDER BY length(first, second) DESC

如果你明白我想说的话,那就试试吧。否则,最好的方法是在中创建一个样本数据集,启动查询并在此处共享,这样我们就可以准确地看到您面临的问题。

以下是我在面对这个问题时所做的:

据我所知,你不可能一次就完成这项任务。您需要使用WITH语句来分解查询,让cypher中途收集一些节点,并对后续匹配执行收集操作。我这是什么意思?考虑这个例子:

如果您当前的查询如下所示:

MATCH (a)--(b)--(c) RETURN a,b,c
然后您必须将其更改为以下内容

MATCH {{ Perform match here just for node type 'a' }} WHERE {{ conditions if any }}
WITH a
MATCH (a)--{{ Perform match for 'b' and 'c' here using 'a' }}
RETURN a,collect(b) as first, collect(c) as second
ORDER BY length(first, second) DESC

如果你明白我想说的话,那就试试吧。否则,最好的方法是在中创建一个示例数据集,启动查询并在此处共享,因此,我们可以清楚地看到您所面临的问题。

我尝试过这样做,但不起作用,因为collect只包含一个元素,即collection应用于每个元素,而collection只包含一个元素。我尝试过这样做,但不起作用,因为collect只包含一个元素,即collection应用于每个元素一个集合中只会有一个元素