Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Regla de análisis de agregación
nota
Se aplica a: motor AWS Clean Rooms SQL de análisis
En AWS Clean Rooms, una regla de análisis de agregación genera estadísticas agregadas utilizando COUNT y/o AVG funciona a lo largo de dimensiones opcionales. SUM Cuando la regla de análisis de agregación se agrega a una tabla configurada, permite al miembro que puede realizar la consulta ejecutar consultas en la tabla configurada.
La regla de análisis de agregación admite casos de uso tales como la planificación de campañas, el alcance mediático, la medición de la frecuencia y la atribución.
La estructura y sintaxis de consulta admitidas se definen en Estructura y sintaxis de consultas de agregación.
Los parámetros de la regla de análisis, definidos en Regla de análisis de agregación: controles de consulta, incluyen los controles de consulta y los controles de resultados de las consultas. Sus controles de consulta incluyen la posibilidad de imponer como requisito que una tabla configurada se una a al menos una tabla configurada propiedad del miembro que puede realizar la consulta, ya sea de forma directa o transitiva. Este requisito le permite asegurarse de que la consulta se ejecute en la intersección (INNER JOIN) de su tabla y la de ellos.
Estructura y sintaxis de consultas de agregación
Las consultas en tablas que tienen una regla de análisis de agregación deben respetar la siguiente sintaxis.
--
select_aggregate_function_expression
SELECT aggregation_function(column_name) [[AS] column_alias ] [, ...] --select_grouping_column_expression
[, {column_name|scalar_function(arguments)} [[AS] column_alias ]][, ...] --table_expression
FROM table_name [[AS] table_alias ] [[INNER] JOIN table_name [[AS] table_alias] ON join_condition] [...] --where_expression
[WHERE where_condition] --group_by_expression
[GROUP BY {column_name|scalar_function(arguments)}, ...]] --having_expression
[HAVING having_condition] --order_by_expression
[ORDER BY {column_name|scalar_function(arguments)} [{ASC|DESC}]] [,...]]
En la siguiente tabla se explica cada una de las expresiones enumeradas en la sintaxis anterior.
Expression | Definición | Ejemplos |
---|---|---|
|
Una lista separada por comas que contiene las siguientes expresiones:
notaDebe haber al menos una |
|
|
Una o más funciones de agregación admitidas aplicadas a una o más columnas. Solo se permiten columnas como argumentos de las funciones de agregación. notaDebe haber al menos una |
|
|
Expresión que puede contener cualquier expresión que utilice lo siguiente:
nota
|
|
|
Una tabla o combinación de tablas que conecta expresiones condicionales de unión con
La
|
|
|
Una expresión condicional que devuelve un valor booleano. Puede constar de lo siguiente:
Las condiciones de comparación admitidas son ( Los operadores lógicos admitidos son ( La |
|
|
Lista separada por comas de expresiones que cumplen con los requisitos de |
|
|
Una expresión condicional que devuelve un valor booleano. Tienen una función de agregación admitida aplicada a una sola columna (por ejemplo, Las condiciones admitidas son ( Los operadores lógicos admitidos son ( La |
|
|
Lista de expresiones separadas por comas que es compatible con los mismos requisitos definidos anteriormente en La nota
|
|
En cuanto a la estructura y sintaxis de las consultas de agregación, tenga en cuenta lo siguiente:
-
SQLcomandos distintos de SELECT no son compatibles.
-
Subconsultas y expresiones de tabla comunes (por ejemplo, WITH) no se admiten.
-
Operadores que combinan varias consultas (por ejemplo, UNION) no se admiten.
-
TOP, LIMIT, y OFFSET no se admiten los parámetros.
Regla de análisis de agregación: controles de consulta
Los controles de consulta de agregación permiten controlar cómo se utilizan las columnas de la tabla para consultarla. Por ejemplo, puede controlar qué columna se usa para unir, qué columna se puede contar o en qué columna se puede usar WHERE declaraciones.
En las secciones siguientes se explica cada uno de los controles.
Controles de agregación
El uso de controles de agregación permite definir qué funciones de agregación se van a permitir y a qué columnas se deben aplicar. Las funciones de agregación se pueden utilizar en SELECT, HAVING, y ORDER BY expresiones.
Control | Definición | Uso |
---|---|---|
aggregateColumns |
Columnas de tablas configuradas que se permite utilizar en las funciones de agregación. |
Algunas La |
function |
Las AVG funciones COUNTSUM, y que permite utilizar además deaggregateColumns . |
La |
Controles de combinación
Se utiliza una cláusula JOIN
para combinar filas de dos o más tablas en función de una columna relacionada entre ellas.
Puede usar los controles de unión para controlar cómo se puede unir su tabla a otras tablas deltable_expression
. AWS Clean Rooms solo admite INNER
JOIN. INNER
JOIN las declaraciones solo pueden usar columnas que se hayan clasificado explícitamente como una joinColumn
en su regla de análisis, sujetas a los controles que usted defina.
La INNER
JOIN deben funcionar en una joinColumn
tabla configurada y en otra tabla configurada joinColumn
de la colaboración. Usted decide qué columnas de la tabla se pueden usar como joinColumn
.
Cada condición de coincidencia dentro del ON la cláusula es necesaria para utilizar la condición de comparación de igualdad (=
) entre dos columnas.
Varias condiciones de coincidencia dentro de un ON las cláusulas pueden ser:
-
Combinación con el operador lógico
AND
-
Separación mediante el operador lógico
OR
nota
Todos JOIN las condiciones de coincidencia deben coincidir con una fila de cada lado del JOIN. Todos los condicionales conectados por un operador AND
lógico OR
o uno lógico también deben cumplir con este requisito.
A continuación se muestra un ejemplo de consulta con un operador lógico AND
.
SELECT some_col, other_col FROM table1 JOIN table2 ON table1.id = table2.id AND table1.name = table2.name
A continuación se muestra un ejemplo de consulta con un operador lógico OR
.
SELECT some_col, other_col FROM table1 JOIN table2 ON table1.id = table2.id OR table1.name = table2.name
Control | Definición | Uso |
---|---|---|
joinColumns |
Las columnas (si las hay) que desea permitir que el miembro que puede realizar la consulta las utilice en INNER JOIN statement. |
También se puede categorizar una La misma columna no se puede usar como A menos que también se haya clasificado como una |
joinRequired |
Controle si necesita un INNER JOIN con una tabla configurada por el miembro que puede realizar la consulta. |
Si habilita este parámetro, un INNER JOIN es obligatorio. Si no habilita este parámetro, un INNER JOIN es opcional. Si se habilita este parámetro, el miembro que puede realizar la consulta debe incluir una tabla de su propiedad en el INNER JOIN. Deben JOIN su mesa con la de ellos, ya sea de forma directa o transitiva (es decir, unir su mesa a otra mesa, que a su vez está unida a la suya). |
A continuación se muestra un ejemplo de transitividad.
ON my_table.identifer = third_party_table.identifier .... ON third_party_table.identifier = member_who_can_query_table.id
nota
El miembro que puede realizar la consulta también puede usar el parámetro joinRequired
. En ese caso, la consulta debe combinar su tabla con al menos otra tabla.
Controles de dimensión
Los controles de dimensión controlan la columna en la cual se pueden filtrar, agrupar o agregar las columnas de agregación.
Control | Definición | Uso |
---|---|---|
dimensionColumns |
Las columnas (si las hay) que permites que utilice el miembro que puede realizar la consulta SELECT, WHERE, GROUP BY, y ORDER BY. |
A Una misma columna no puede ser a la vez |
Funciones escalares
Las funciones escalares controlan qué funciones escalares se pueden usar en las columnas de dimensión.
Control | Definición | Uso |
---|---|---|
scalarFunctions |
Las funciones escalares que se pueden utilizar en |
Especifica las funciones escalares (si las hay) que se permiten (por ejemplo, CAST) a las que se aplicará. Las funciones escalares no se pueden usar además de otras funciones ni dentro de otras funciones. Los argumentos de las funciones escalares pueden ser columnas, literales de cadena o literales numéricos. |
Se admiten las siguientes funciones escalares:
-
Funciones matemáticas:ABS,CEILING,, FLOORLOG, LN,ROUND, SQRT
-
Funciones de formato de tipos de datos: CAST, CONVERT, TO_CHAR, TO_DATE, TO_NUMBER, TO_TIMESTAMP
-
Funciones de cadena — LOWERUPPER,TRIM,RTRIM, SUBSTRING
-
ParaRTRIM, no se permiten conjuntos de caracteres personalizados para recortar.
-
-
Expresiones condicionales: COALESCE
-
Funciones de fecha —EXTRACT,GETDATE, CURRENT _DATE, DATEADD
-
Otras funciones — TRUNC
Para obtener más detalles, consulte la AWS Clean Rooms SQLReferencia.
Regla de análisis de agregación: controles de resultados de consulta
Los controles de resultados de consulta de agregación le permiten controlar qué resultados se devuelven especificando una o más condiciones que debe cumplir cada fila de salida. AWS Clean Rooms admite restricciones de agregación en forma de COUNT (DISTINCT column) >=
X
. Este formato requiere que cada fila agregue al menos X valores diferenciados de una selección de la tabla configurada (por ejemplo, un número mínimo de valores user_id
diferenciados). Este umbral mínimo se aplica automáticamente, incluso si la consulta enviada en sí misma no utiliza la columna especificada. Se aplican de manera conjunta en cada tabla configurada de la consulta desde las tablas configuradas de cada miembro de la colaboración.
Cada tabla configurada debe tener al menos una restricción de agregación en su regla de análisis. Los propietarios de las tablas configuradas pueden añadir varios columnName
y su minimum
asociado y estos se aplicarán conjuntamente.
Restricciones de agregación
Las restricciones de agregación controlan qué filas de los resultados de la consulta se devuelven. Para incluirse en los resultados devueltos, una fila debe cumplir con el número mínimo especificado de valores diferenciados en cada columna especificada en la restricción de agregación. Este requisito se aplica incluso si la columna no se menciona explícitamente en la consulta o en otras partes de la regla de análisis.
Control | Definición | Uso |
---|---|---|
columnName |
La |
Puede tratarse de cualquier columna de la tabla configurada. |
minimum |
El número mínimo de valores distintos asociados |
El |
Estructura de la regla de análisis de agregación
El siguiente ejemplo muestra una estructura predefinida para una regla de análisis de agregación.
En el siguiente ejemplo,
hace referencia a nuestra tabla de datos. Puede reemplazar cada uno MyTable
user input placeholder
por su propia información.
{ "aggregateColumns": [ { "columnNames": [
MyTable column names
], "function": [Allowed Agg Functions
] }, ], "joinRequired": ["QUERY_RUNNER"], "joinColumns": [MyTable column names
], "dimensionColumns": [MyTable column names
], "scalarFunctions": [Allowed Scalar functions
], "outputConstraints": [ { "columnName": [MyTable column names
], "minimum": [Numeric value
] }, ] }
Regla de análisis de agregación: ejemplo
El siguiente ejemplo demuestra cómo dos empresas pueden colaborar en el AWS Clean Rooms uso del análisis de agregación.
La empresa A tiene datos de clientes y de ventas. La empresa A está interesada en conocer la actividad de devolución de productos. La empresa B es uno de los minoristas de la empresa A y dispone de datos sobre devoluciones. La empresa B también tiene atributos de segmento sobre los clientes que son útiles para la empresa A (por ejemplo, compra de productos relacionados o uso del servicio de atención al cliente del minorista). La empresa B no quiere proporcionar información sobre atributos ni datos sobre devoluciones de los clientes por fila. La empresa B solo quiere habilitar un conjunto de consultas para que la empresa A obtenga estadísticas agregadas sobre los clientes que se superponen dentro de un umbral de agregación mínimo.
La empresa A y la empresa B deciden colaborar para que la empresa A pueda entender la actividad de devolución de productos y ofrecer mejores productos en la empresa B y en otros canales.
Para crear la colaboración y realizar un análisis de agregación, las empresas hacen lo siguiente:
-
La empresa A crea una colaboración y crea una pertenencia. La colaboración tiene a la empresa B como otro miembro de la colaboración. La empresa A habilita el registro de consultas en la colaboración y habilita el registro de consultas en su cuenta.
-
La empresa B crea una pertenencia en la colaboración. Habilita el registro de consultas en su cuenta.
-
La empresa A crea una tabla configurada de ventas.
-
La empresa A añade la siguiente regla de análisis de agregación a la tabla configurada de ventas.
{ "aggregateColumns": [ { "columnNames": [ "identifier" ], "function": "COUNT_DISTINCT" }, { "columnNames": [ "purchases" ], "function": "AVG" }, { "columnNames": [ "purchases" ], "function": "SUM" } ], "joinColumns": [ "hashedemail" ], "dimensionColumns": [ "demoseg", "purchasedate", "productline" ], "scalarFunctions": [ "CAST", "COALESCE", "TRUNC" ], "outputConstraints": [ { "columnName": "hashedemail", "minimum": 2, "type": "COUNT_DISTINCT" }, ] }
aggregateColumns
: la empresa A quiere contar el número de clientes únicos que se superponen entre los datos de ventas y los datos de devoluciones. La empresa A también quiere sumar el número depurchases
fabricados para compararlo con el número dereturns
.joinColumns
: la empresa A desea usaridentifier
para cotejar los clientes de los datos de ventas con los clientes de los datos de devoluciones. Esto ayudará a la empresa A a relacionar las devoluciones con las compras correctas. También ayudará a la empresa A a segmentar los clientes superpuestos.dimensionColumns
: la empresa A usadimensionColumns
para filtrar por un producto específico, comparar las compras y las devoluciones correspondientes a un periodo de tiempo determinado, asegurarse de que la fecha de devolución sea posterior a la fecha del producto y ayudar a segmentar los clientes superpuestos.scalarFunctions
: la empresa A selecciona la función escalarCAST
para ayudar a actualizar los formatos de tipo de datos si es necesario, basándose en la tabla configurada que la empresa A ha asociado a la colaboración. También añade funciones escalares para ayudar a dar formato a las columnas si es necesario.outputConstraints
: la empresa A establece restricciones de salida mínimas. No necesita restringir los resultados, ya que el analista puede ver los datos de la tabla de ventas por fila.nota
La empresa A no incluye
joinRequired
en la regla de análisis. Ofrece flexibilidad para que el analista consulte solo la tabla de ventas. -
La empresa B crea una tabla configurada de devoluciones.
-
La empresa B añade la siguiente regla de análisis de agregación a la tabla configurada de devoluciones.
{ "aggregateColumns": [ { "columnNames": [ "identifier" ], "function": "COUNT_DISTINCT" }, { "columnNames": [ "returns" ], "function": "AVG" }, { "columnNames": [ "returns" ], "function": "SUM" } ], "joinColumns": [ "hashedemail" ], "joinRequired": [ "QUERY_RUNNER" ], "dimensionColumns": [ "state", "popularpurchases", "customerserviceuser", "productline", "returndate" ], "scalarFunctions": [ "CAST", "LOWER", "UPPER", "TRUNC" ], "outputConstraints": [ { "columnName": "hashedemail", "minimum": 100, "type": "COUNT_DISTINCT" }, { "columnName": "producttype", "minimum": 2, "type": "COUNT_DISTINCT" } ] }
aggregateColumns
: la empresa B permite a la empresa A sumar lasreturns
para compararlas con el número de compras. Tienen al menos una columna agregada porque han habilitado una consulta agregada.joinColumns
: la empresa B permite a la empresa A combinar poridentifier
para cotejar los clientes de los datos de devoluciones con los clientes de los datos de ventas. Los datos deidentifier
son especialmente sensibles, y tenerlos comojoinColumn
garantiza que los datos no se incluyan nunca en una consulta.joinRequired
: la empresa B impone como requisito que las consultas sobre los datos de devoluciones se superpongan con los datos de ventas. No quieren permitir que la empresa A consulte todas las personas de su conjunto de datos. También acordaron esa restricción en su contrato de colaboración.dimensionColumns
: la empresa B permite a la empresa A filtrar y agrupar porstate
,popularpurchases
ycustomerserviceuser
, que son atributos únicos que podrían ayudar a realizar el análisis para la empresa A. La empresa B permite a la empresa A usarreturndate
para filtrar la salida porreturndate
que sea posterior apurchasedate
. Con este filtrado, la salida es más precisa a la hora de evaluar el impacto del cambio de producto.scalarFunctions
: la empresa B habilita lo siguiente:-
TRUNCpara fechas
-
LOWERy UPPER en caso de
producttype
que se introduzca en un formato diferente en sus datos -
CAST si la empresa A necesita convertir los tipos de datos de las ventas para que sean iguales a los tipos de datos de las devoluciones
La empresa A no habilita otras funciones escalares porque no cree que sean necesarias para las consultas.
outputConstraints
: la empresa B establece restricciones de salida mínimas enhashedemail
para reducir en mayor medida la posibilidad de volver a identificar a los clientes. También añade una restricción de salida mínima enproducttype
para reducir en mayor medida la posibilidad de volver a identificar los productos específicos devueltos. Determinados tipos de productos podrían ser más dominantes en función de las dimensiones de la salida (por ejemplo,state
). Sus restricciones de salida se aplicarán siempre, independientemente de las restricciones de salida que añada la empresa A a sus datos. -
-
La empresa A crea una asociación a la tabla de ventas en la colaboración.
-
La empresa B crea una asociación a la tabla de devoluciones en la colaboración.
-
La empresa A realiza consultas, como las del ejemplo siguiente, para entender mejor la cantidad de devoluciones de la empresa B en comparación con el total de compras por ubicación en 2022.
SELECT companyB.state, SUM(companyB.returns), COUNT(DISTINCT companyA.hashedemail) FROM sales companyA INNER JOIN returns companyB ON companyA.identifier = companyB.identifier WHERE companyA.purchasedate BETWEEN '2022-01-01' AND '2022-12-31' AND TRUNC(companyB.returndate) > companyA.purchasedate GROUP BY companyB.state;
-
La empresa A y la empresa B revisan los registros de consultas. La empresa B comprueba que la consulta se ajusta a lo acordado en el contrato de colaboración.
Solución de problemas relacionados con reglas de análisis de agregación
Utilice la información que se incluye aquí para diagnosticar y solucionar problemas frecuentes cuando utilice reglas de análisis de agregación.
Mi consulta no ha devuelto ningún resultado
Esto puede ocurrir cuando no hay resultados coincidentes o cuando los resultados coincidentes no cumplen uno o más umbrales de agregación mínimos.
Para obtener más información sobre los umbrales de agregación mínimos, consulte Regla de análisis de agregación: ejemplo.