【发布时间】:2017-12-01 14:48:06
【问题描述】:
我有一个使用空间插件的空间数据图表。
此图具有“威胁区域”(多边形),可以在另一个之上,因此它们也具有 z-index 属性。
每个“威胁区”附加到 1 到 N 个威胁场景,有时多个“威胁区”附加到同一个威胁场景,具有不同的属性。
我正在尝试根据 z-index 为特定位置获取每个威胁场景的最高威胁区域。
这是我目前几乎完美的查询:
MATCH (asset:Asset{name:'Asset Name'})-[]-(ara:AssetRiskAssessment)
WITH asset, ara
CALL spatial.intersects('threat_zones',asset.wkt) YIELD node
WITH node, asset, ara
MATCH (node)<-[:FOR]-(tss:ThreatScenarioScore)-[]-(ts:ThreatScenario)
RETURN ts.name, max(node.zindex) AS zindex, tss.intention, tss.capability
ORDER BY ts.name, zindex
我的问题 - 如果我删除 tss.intenion、tss.capability 我会得到我正在寻找的东西(正确区域的每个相关威胁场景)但我需要的是 tss.intention 和 @987654325 @。由于它们的值在区域之间不同,因此 max 函数将它们视为不同的记录。
有没有更好的方法来使用 max 函数来获得我想要的和/或使用嵌套查询来提取意图/能力(这就是我所追求的)?
【问题讨论】:
标签: neo4j cypher neo4j-spatial