如何使用Cypher支架复杂的嵌套查询

问题描述 投票:1回答:1

我在Cypher支架查询其发现某个设备的最新的最后一次。我想所有的设备匹配我的数据库,他们的最后一次属性是最新的他们的设备,然后返回其ID。不幸的是,我无法创建一个适当的子查询。

我一直在使用与和实例{},但无法找到任何工作尝试。

主要大宗(的作品):

MATCH (a:device)
MATCH (b:device)
WHERE certain filters
RETURN
CASE 
WHEN a.last_seen > MAX(b.last_seen) THEN a.last_seen 
WHEN a.last_seen < MAX(b.last_seen) THEN MAX(b.last_seen)
ELSE a.last_seen END AS lastest

然后,我想做的事:

MATCH (d:device)
WHERE d.last_seen = lastest
RETURN d.device_id

无论我试过这么远我只是语法错误。我怎么巢批量查询?

neo4j subquery cypher with-statement
1个回答
0
投票

你可以使用MAX功能的最新last_seen。

然后,你可以用它来获得所有最新的last_seen的设备。

下面是该查询得到last_seen的最大值,然后得到所有匹配这个last_seen的设备。

MATCH (a:device)
WHERE certain filters
WITH MAX(a.last_seen) AS latest_last_seen
MATCH (d:device)
WHERE d.last_seen = latest_last_seen
RETURN d.device_id

(与您要提出申请。我想你忘了在第二查询添加特定的过滤器过滤器更换某些过滤器)。

编辑:正如@InverseFalcon建议,添加物业last_seen指数

© www.soinside.com 2019 - 2024. All rights reserved.