measure を操作する
このドキュメントでは、グラフで measure を定義してクエリする方法について説明します。 measure を使用すると、結合全体で集計が正しく行われるようにできます。
概要
measure は、ノードテーブルまたはエッジテーブルの PROPERTIES 句内で定義される集計プロパティです。 measure は、MEASURE キーワードと、次のいずれかのサポートされている集計関数を使用して定義されます。
SUMAVGCOUNTCOUNT(DISTINCT)MINMAX
measure は、定義されているノードテーブルまたはエッジテーブルの KEY を参照して集計を定義します。つまり、measure
をクエリすると、基盤となるテーブルが重複する行を引き起こす方法で結合されている場合でも、集計が正しく行われます。
GQL クエリで measure によって定義されたプロパティを参照することはできません。代わりに、
グラフのフラット化されたテーブル表現を作成するために、
GRAPH_EXPAND TVF
を呼び出すことで、measure にアクセスします。この関数は、すべての種類のグラフを受け入れるわけではありません。有効な入力となるグラフの詳細については、入力の制限をご覧ください。GQL クエリを実行するには、
Enterprise エディションまたは Enterprise Plus エディションを使用する
予約が必要です。
オンデマンド料金を使用する場合は、GRAPH_EXPAND 関数を呼び出してグラフに対して SQL クエリを実行できます。
GRAPH_EXPAND TVF の出力に対して AGG 関数を呼び出して、measure で定義した集計関数に従ってプロパティを集計できます。
measure を定義する
measure は、サポートされている集計関数を MEASURE() キーワードで囲むことで、ノードテーブルまたはエッジテーブル定義の
PROPERTIES 句
内で定義します。
次の例では、university という名前のデータセットと、大学、学部、コースのテーブルを作成します。
CREATE SCHEMA IF NOT EXISTS university;
CREATE OR REPLACE TABLE university.College (
college_id INT64 PRIMARY KEY NOT ENFORCED,
college_name STRING
);
CREATE OR REPLACE TABLE university.Department (
dept_id INT64 PRIMARY KEY NOT ENFORCED,
dept_name STRING,
college_id INT64,
budget FLOAT64,
FOREIGN KEY (college_id) REFERENCES university.College(college_id) NOT ENFORCED
);
CREATE OR REPLACE TABLE university.Course (
course_id INT64 PRIMARY KEY NOT ENFORCED,
course_name