Trabaja con medidas
En este documento, se muestra cómo definir y consultar medidas en tus gráficos. Puedes usar medidas para asegurarte de que las agregaciones se realicen correctamente en las uniones.
Descripción general
Una medida es una propiedad agregada definida dentro de la cláusula PROPERTIES de una tabla de nodos o aristas. Las medidas se definen con la palabra clave MEASURE y una de las siguientes funciones agregadas compatibles:
SUMAVGCOUNTCOUNT(DISTINCT)MINMAX
Las medidas definen su agregación en referencia a la KEY de la tabla de nodos o aristas en la que se definen. Esto significa que, cuando consultas una medida, la agregación se realiza correctamente, incluso si la tabla subyacente se une de una manera que hace que se dupliquen las filas.
No puedes hacer referencia a una propiedad definida por una medida en una consulta de GQL. En cambio,
puedes acceder a las medidas llamando a la
GRAPH_EXPAND TVF
para crear una representación de tabla aplanada de tu gráfico. Esta función no acepta todos los tipos de gráficos. Para obtener más información sobre
qué gráficos forman una entrada válida, consulta las limitaciones de entrada.
Para ejecutar consultas de GQL, debes tener una
reserva que use la
edición Enterprise o Enterprise Plus.
Si usas precios a pedido, puedes llamar a la función GRAPH_EXPAND para ejecutar consultas de SQL en tu gráfico.
Puedes llamar a la
AGG función
en el resultado de la GRAPH_EXPAND TVF para agregar
las propiedades según la función de agregación que definiste en
la medida.
Define medidas
Para definir medidas dentro de la
PROPERTIES cláusula
de una definición de tabla de nodos o aristas, usa la palabra clave MEASURE() alrededor de una
función agregada compatible.
En el siguiente ejemplo, se crea un conjunto de datos llamado university y tablas para universidades, departamentos y cursos:
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 KEY (dept_id) REFERENCES university.Department(dept_id) NOT ENFORCED
);
INSERT INTO university.College (college_id, college_name)
VALUES (101, 'College of Engineering'),
(102, 'College of Arts');
INSERT INTO university.Department (dept_id, dept_name, college_id, budget)
VALUES (1001, 'Computer Science'