Neo4j Cypher查询带子选择

时间:2016-03-30 17:55:37

标签: neo4j cypher jqassistant

我正在尝试查找由jqassistant创建的图表查询。但我无法弄明白。我的数据如下:

我有几个表示工件的节点:(每行是一个节点)

name        version
===================
projectOne     001
projectTwo     001
projectOne     002
projectTwo     002
projectOne     009
projectOne     004
projectOne     029
projectTwo     003
projectTwo     010

我的查询应返回的是两个节点:

projectOne  029
projectTwo  010

所以我希望这个节点的最新版本按名称区分。我知道如何使用DISTINCT和ORDER BY,但我无法弄清楚如何将这两者结合起来以获得所需的输出。有什么想法吗?

我的最终目标是标记最新版本。然后我想指出每个最新的工件,它取决于未标记为最新的工件。

实现这一目标的另一个可能的解决方案是创建一系列前辈。然后,没有传入前任的每个工件都将是最新版本。但这与我选择最新的问题意味着同样的问题。

1 个答案:

答案 0 :(得分:2)

假设所有相关节点都有Foo标签,则查询非常简单:

MATCH (n:Foo)
RETURN n.name, MAX(n.version);

MAX聚合函数查找每个不同名称的最大版本。