私は空間プラグインを使用して空間データを持つグラフを持っています。cypherを使用して異なる値を持つ最大レコードを取得する
このグラフには、「脅威ゾーン」(ポリゴン)があり、他のものの上に置くことができ、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
とtss.capability
です。それらの値はゾーン間で異なるため、max関数はそれらを異なるレコードと見なします。
max関数を使用して、私が望むものを取得したり、ネストされたクエリを使用して意図/能力を抽出したりする良い方法がありますか?