

# AggregateMatch
<a name="dqdl-rule-types-AggregateMatch"></a>

Comprueba la relación de dos agregaciones de columnas con respecto a una expresión determinada. Este tipo de regla funciona en varios conjuntos de datos. Se evalúan las agregaciones de dos columnas y se obtiene una relación al dividir el resultado de la agregación de la primera columna por el resultado de la agregación de la segunda columna. La relación se comprueba con la expresión proporcionada para producir una respuesta booleana.

**Sintaxis**

**Agregación de columnas**

```
AggregateMatch <AGG_OPERATION> (<OPTIONAL_REFERENCE_ALIAS>.<COL_NAME>)
```
+ **AGG\$1OPERATION**: la operación que se debe utilizar para la agregación. `sum` y `avg` se admiten en la actualidad.

  **Tipos de columnas compatibles**: byte, decimal, doble, flotante, entero, largo, corto
+ **OPTIONAL\$1REFERENCE\$1ALIAS**: este parámetro debe proporcionarse si la columna proviene de un conjunto de datos de referencia y no del conjunto de datos principal. Si utiliza esta regla en el Catálogo de datos de AWS Glue, su alias de referencia debe tener el formato "<database\$1name>.<table\$1name>.<column\$1name>

  **Tipos de columnas compatibles**: byte, decimal, doble, flotante, entero, largo, corto
+ **COL\$1NAME**: el nombre de la columna que se va a agregar.

  **Tipos de columnas compatibles**: byte, decimal, doble, flotante, entero, largo, corto

**Ejemplo: promedio**

```
"avg(rating)"
```

**Ejemplo: suma**

```
"sum(amount)"
```

**Ejemplo: promedio de la columna en el conjunto de datos de referencia**

```
"avg(reference.rating)"
```

**Regla**

```
AggregateMatch <AGG_EXP_1> <AGG_EXP_2> <EXPRESSION>
```
+ **AGG\$1EXP\$11**: la agregación de la primera columna.

  Tipos de columnas compatibles: byte, decimal, doble, flotante, entero, largo, corto

  **Tipos de columnas compatibles**: byte, decimal, doble, flotante, entero, largo, corto
+ **AGG\$1EXP\$12**: la agregación de la segunda columna.

  Tipos de columnas compatibles: byte, decimal, doble, flotante, entero, largo, corto

  **Tipos de columnas compatibles**: byte, decimal, doble, flotante, entero, largo, corto
+ **EXPRESSION**: una expresión que se ejecuta en función de la respuesta del tipo de regla para producir un valor booleano. Para obtener más información, consulte [Expresiones](dqdl.md#dqdl-syntax-rule-expressions).

**Ejemplo: coincidencia agregada mediante suma**

La siguiente regla de ejemplo comprueba si la suma de los valores en la columna `amount` es exactamente igual a la suma de los valores en la columna `total_amount`.

```
AggregateMatch "sum(amount)" "sum(total_amount)" = 1.0
```

**Ejemplo: coincidencia agregada mediante promedio**

La siguiente regla de ejemplo comprueba si el promedio de los valores en la columna `ratings` es igual al 90 %, como mínimo, del promedio de los valores en la columna `ratings` en el conjunto de datos `reference`. El conjunto de datos de referencia se proporciona como origen de datos adicional en la experiencia ETL o el Catálogo de datos.

En AWS Glue ETL, puede usar:

```
AggregateMatch "avg(ratings)" "avg(reference.ratings)" >= 0.9
```

En el Catálogo de datos de AWS Glue, puede usar:

```
AggregateMatch "avg(ratings)" "avg(database_name.tablename.ratings)" >= 0.9
```

**Comportamiento nulo**

 La regla `AggregateMatch` ignorará las filas con valores nulos al momento de calcular los métodos de agregación (suma/media). Por ejemplo: 

```
+---+-----------+
|id |units      |
+---+-----------+
|100|0          | 
|101|null       |
|102|20         |
|103|null       |
|104|40         |
+---+-----------+
```

 La media de la columna `units` será (0 \$1 20 \$1 40) / 3 = 20. Las filas 101 y 103 no se tienen en cuenta para este cálculo. 