6.8.3.2 可変長パス問合せのネスト解除

可変長パス問合せ(SHORTESTパスやCHEAPESTパスなど)のネストを解除して、パスに沿った頂点またはエッジごとに個別の行を取得できます。

次のオプションのいずれかを使用して、パス集計をネスト解除できます。
  • ONE ROW PER MATCH (デフォルト・オプション)
  • ONE ROW PER VERTEX(vertex_variable)
  • ONE ROW PER EDGE(edge_variable)

ノート:

グラフ・ビジュアライゼーション・アプリケーションを使用した可変長パス問合せの視覚化はサポートされていません。

たとえば、次のPGQL問合せではONE ROW PER EDGEオプションが使用されます。

SELECT k.TXN_AMOUNT
FROM MATCH ALL SHORTEST (a:Accounts) -[e:transfers]->* (b:Accounts) 
ONE ROW PER EDGE( k )
WHERE a.ACCT_ID = 284 AND b.ACCT_ID = 616

実行時には、前述の問合せはパスに沿ってエッジごとに1行を取得します。

+------------+
| TXN_AMOUNT |
+------------+
| 1000.0     |
| 1000.0     |
| 1000.0     |
+------------+

ONE ROW PER VERTEXオプションを指定した問合せの例を次に示します。

SELECT k.ACCT_ID AS id, k.ACCT_NAME AS name
FROM MATCH ANY SHORTEST (a:Accounts) ((src:Accounts)-[e:transfers]->){1,3}(b:Accounts)
ONE ROW PER VERTEX(k)
WHERE a.ACCT_ID=284 AND b.ACCT_ID=616

実行時には、前述の問合せはパスに沿って頂点ごとに1行を取得します。

+----------------------+
| ACCT_ID | ACCT_NAME  |
+----------------------+
| 616     | Account4   |
| 744     | Account3   |
| 772     | Account2   |
| 284     | Account1   |
+----------------------+