

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

Verifica a razão de agregações de duas colunas em relação a uma dada expressão. Esse tipo de regra funciona em vários conjuntos de dados. As agregações de duas colunas são avaliadas e uma razão é produzida dividindo o resultado da agregação da primeira coluna pelo resultado da agregação da segunda coluna. A razão é verificada em relação à expressão fornecida para produzir uma resposta booleana.

**Sintaxe**

**Agregação de colunas**

```
AggregateMatch <AGG_OPERATION> (<OPTIONAL_REFERENCE_ALIAS>.<COL_NAME>)
```
+ **AGG\$1OPERATION**: a operação a ser usada para a agregação. No momento, `sum` e `avg` são compatíveis.

  **Tipos de coluna compatíveis**: byte, decimal, duplo, flutuante, inteiro, longo, curto
+ **OPTIONAL\$1REFERENCE\$1ALIAS**: esse parâmetro precisa ser fornecido se a coluna for de um conjunto de dados de referência e não do conjunto de dados primário. Se você estiver usando essa regra no catálogo de dados do AWS Glue, o alias de referência deverá seguir o formato "<nome\$1banco de dados>.<nome\$1tabela>.<nome\$1coluna>

  **Tipos de coluna compatíveis**: byte, decimal, duplo, flutuante, inteiro, longo, curto
+ **COL\$1NAME**: o nome da coluna a ser agregada.

  **Tipos de coluna compatíveis**: byte, decimal, duplo, flutuante, inteiro, longo, curto

**Exemplo: média**

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

**Exemplo: soma**

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

**Exemplo: média da coluna no conjunto de dados de referência**

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

**Regra**

```
AggregateMatch <AGG_EXP_1> <AGG_EXP_2> <EXPRESSION>
```
+ **AGG\$1EXP\$11**: a agregação da primeira coluna.

  Tipos de coluna compatíveis: byte, decimal, duplo, flutuante, inteiro, longo, curto

  **Tipos de coluna compatíveis**: byte, decimal, duplo, flutuante, inteiro, longo, curto
+ **AGG\$1EXP\$12**: a agregação da segunda coluna.

  Tipos de coluna compatíveis: byte, decimal, duplo, flutuante, inteiro, longo, curto

  **Tipos de coluna compatíveis**: byte, decimal, duplo, flutuante, inteiro, longo, curto
+ **EXPRESSION**: uma expressão a ser executada na resposta do tipo de regra para produzir um valor booliano. Para obter mais informações, consulte [Expressões](dqdl.md#dqdl-syntax-rule-expressions).

**Exemplo: Aggregate Match usando soma**

O exemplo de regra a seguir verifica se a soma dos valores na coluna `amount` é exatamente igual à soma dos valores na coluna `total_amount`.

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

**Exemplo: Aggregate Match usando média**

O exemplo de regra a seguir verifica se a média dos valores na coluna `ratings` é igual a pelo menos 90% da média dos valores na coluna `ratings` no conjunto de dados `reference`. O conjunto de dados de referência é fornecido como uma fonte de dados adicional na experiência de ETL ou do catálogo de dados.

No AWS Glue ETL, você pode usar:

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

No catálogo de dados do AWS Glue, você pode usar:

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

**Comportamento nulo**

 A `AggregateMatch` regra ignorará as linhas com valores NULL no cálculo dos métodos de agregação (soma/média). Por exemplo: 

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

 A média da coluna `units` será (0 \$1 20 \$1 40)/3 = 20. As linhas 101 e 103 não são consideradas nesse cálculo. 