стоимость.
я есть график с пространственными данными с использованием пространственного плагина.
Этот график имеет «Зоны угроз» (полигоны), которые могут располагаться поверх других, поэтому они также имеют свойство z-index.
Каждая «Зона угроз» связана с 1 - N сценариями угроз, иногда несколько «Зон угроз» связаны с одним и тем же сценарием угрозы с разными свойствами.
Я пытаюсь получить верхнюю зону угрозы для каждого сценария угрозы на основе z-индекса для конкретного местоположения.
Это мой текущий запрос, который почти идеален:
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
а такжеtss.capability
, Поскольку их значения в разных зонах разные, функция max рассматривает их как разные записи.
Есть ли лучший способ использовать функцию max, чтобы получить то, что я хочу, и / или использовать вложенный запрос, чтобы извлечь намерение / возможность (что я и хочу)?