5.5 SQLグラフ問合せでの集計関数の使用

SQLグラフ問合せで集計関数を使用すると、集計された出力を取得できます。

SQL組込み集計関数とユーザー定義集計の両方がサポートされています。これらの関数は、SQLグラフ問合せにおいて固定長パス・パターンと可変長パス・パターンの両方で含めることができます。

集計関数は、COLUMNS句で、またはSQLグラフ問合せのグラフ・パターンのWHERE句で適用できます。たとえば、次の問合せ例を考えてみます。

SELECT *
FROM GRAPH_TABLE ( g
       MATCH (v1) (-[e]->(v2)){1,2}
       COLUMNS (LISTAGG(v2.id, ',') AS id_list)

前述のグラフ問合せでは、数量詞として{1,2}が含まれている可変長パス・パターンが記述されています。LISTAGG集計関数をCOLUMNS句で使用して、パスに沿ってidすべてがリストされるようにしています。

同様に、次のように、固定長パス・パターンで集計を適用することもできます。

SELECT *
FROM GRAPH_TABLE ( g
       MATCH (v1) (-[e]->(v2)){2}
       WHERE AVG(v2.age) >= 30
       COLUMNS (LISTAGG(v2.id, ',') AS id_list)

前述のグラフ問合せでは、固定長パス・パターンが記述されています。WHERE句で使用されているAVG集計では、平均age >= 30条件を満たすパスのみが特定されます。結果となる問合せ出力は、パスに沿ったidのリストです。

集計を使用した問合せの例は、例5-15を参照してください。

関連項目:

集計のその他の例は、『Oracle Database SQL言語リファレンス』のグラフ・パターンを参照してください