Obtendo o registro máximo com valores diferentes usando cypher

Eu tenho um gráfico com dados espaciais usando o plugin espacial.

Este gráfico possui "Zonas de ameaça" (polígonos), que podem estar em cima do outro, para que também tenham uma propriedade de índice z.

Cada "zona de ameaça" é anexada a 1 a N cenários de ameaça, às vezes várias "zonas de ameaça" são anexadas ao mesmo cenário de ameaça, com propriedades diferentes.

Estou tentando obter a principal zona de ameaça para cada cenário de ameaça, com base no z-index, para um local específico.

Esta é minha consulta atual, que é quase perfeita:

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

Meu problema - se eu removertss.intenion, tss.capability Estou conseguindo o que estou procurando (cada cenário de ameaça relevante da zona certa), mas o que eu preciso disso é otss.intention etss.capability. Como seus valores são diferentes entre as zonas, a função max os considera como registros diferentes.

Existe uma maneira melhor de usar a função max para obter o que eu quero e / ou usar uma consulta aninhada para extrair a intenção / capacidade (que é o que estou procurando)?

questionAnswers(1)

yourAnswerToTheQuestion