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 |
+----------------------+