measure を操作する

このドキュメントでは、グラフで measure を定義してクエリする方法について説明します。 measure を使用すると、結合全体で集計が正しく行われるようにできます。

概要

measure は、ノードテーブルまたはエッジテーブルの PROPERTIES 句内で定義される集計プロパティです。 measure は、MEASURE キーワードと、次のいずれかのサポートされている集計関数を使用して定義されます。

  • SUM
  • AVG
  • COUNT
  • COUNT(DISTINCT)
  • MIN
  • MAX

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