使用测量

本文档介绍了如何在图表上定义和查询测量。 您可以使用测量来确保在联接中正确执行聚合。

概览

“测量”是在节点或边缘表的 PROPERTIES 子句中定义的聚合属性。 测量是使用 MEASURE 关键字和以下受支持的聚合函数之一定义的:

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

测量会根据其定义的节点或边缘表的 KEY 定义其聚合。这意味着,当您查询测量时,即使基础表以导致行重复的方式联接,也会正确执行聚合。

您无法在 GQL 查询中引用由测量定义的属性。相反, 您可以通过调用 GRAPH_EXPAND TVF 来访问测量,以创建图表的扁平化表表示形式。此函数不接受所有类型的图表。如需详细了解 哪些图表构成有效输入,请参阅输入限制。 如需运行 GQL 查询,您必须拥有使用 Enterprise 或企业 Plus 版预留。如果您使用按需价格,则可以调用 GRAPH_EXPAND 函数在图表上运行 SQL 查询。

您可以对 GRAPH_EXPAND TVF 的输出调用 AGG 函数 ,以根据您在 测量中定义的聚合函数聚合 属性。

定义测量

您可以在节点或边缘表定义的 PROPERTIES子句 中使用 MEASURE() 关键字(围绕受支持的聚合函数)来定义测量。

以下示例创建了一个名为 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 STRING,
  dept_id INT64,
  credits INT64,
  FOREIGN