带有 sub select 的 Neo4j Cypher 查询
Neo4j Cypher query with sub select
我正在尝试为我由 jqassistant 创建的图表查找查询。但我就是想不通。我的数据如下所示:
我有几个节点代表一个工件:(每一行都是一个节点)
name version
===================
projectOne 001
projectTwo 001
projectOne 002
projectTwo 002
projectOne 009
projectOne 004
projectOne 029
projectTwo 003
projectTwo 010
我的查询应该 return 是两个节点:
projectOne 029
projectTwo 010
所以我想要这个节点的最新版本的名称不同。我知道如何使用 DISTINCT 和 ORDER BY,但我不知道如何将这两者结合起来以获得所需的输出。有什么想法吗?
我的最终目标是标记最新版本。然后我想指出每个依赖于未标记为最新的工件的最新工件。
另一种可能的解决方案是创建一个前辈链。那么每个没有传入前任的工件都将是最新版本。但这意味着与我选择最新的问题相同的问题。
假设所有相关节点都有Foo
标签,查询很简单:
MATCH (n:Foo)
RETURN n.name, MAX(n.version);
MAX
聚合函数查找每个不同名称的最大版本。
我正在尝试为我由 jqassistant 创建的图表查找查询。但我就是想不通。我的数据如下所示:
我有几个节点代表一个工件:(每一行都是一个节点)
name version =================== projectOne 001 projectTwo 001 projectOne 002 projectTwo 002 projectOne 009 projectOne 004 projectOne 029 projectTwo 003 projectTwo 010
我的查询应该 return 是两个节点:
projectOne 029 projectTwo 010
所以我想要这个节点的最新版本的名称不同。我知道如何使用 DISTINCT 和 ORDER BY,但我不知道如何将这两者结合起来以获得所需的输出。有什么想法吗?
我的最终目标是标记最新版本。然后我想指出每个依赖于未标记为最新的工件的最新工件。
另一种可能的解决方案是创建一个前辈链。那么每个没有传入前任的工件都将是最新版本。但这意味着与我选择最新的问题相同的问题。
假设所有相关节点都有Foo
标签,查询很简单:
MATCH (n:Foo)
RETURN n.name, MAX(n.version);
MAX
聚合函数查找每个不同名称的最大版本。