

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

特定の式を参照して、2 つの列の集計の比率をチェックします。このルールタイプは、複数のデータセットで機能します。2 つの列の集計が評価され、1 番目の列の集計結果を 2 番目の列の集計結果で割ることで比率が算出されます。比率と指定された式が照合され、ブール型応答が生成されます。

**構文**

**列の集計**

```
AggregateMatch <AGG_OPERATION> (<OPTIONAL_REFERENCE_ALIAS>.<COL_NAME>)
```
+ **AGG\$1OPERATION** – 集計に使用する操作。現在サポートされている形式は、`sum` と `avg` です。

  **列でサポートされている型**: Byte (バイト)、Decimal (十進数)、Double (倍精度浮動小数点数)、Float (浮動小数点数)、Integer (整数)、Long (整数)、Short (整数)
+ **OPTIONAL\$1REFERENCE\$1ALIAS** – 列がプライマリデータセットではなく参照データセットのものである場合は、このパラメータを指定する必要があります。このルールを AWS Glue データカタログで使用している場合は、参照エイリアスは "<database\$1name>.<table\$1name>.<column\$1name> の形式に従います。

  **列でサポートされている型**: Byte (バイト)、Decimal (十進数)、Double (倍精度浮動小数点数)、Float (浮動小数点数)、Integer (整数)、Long (整数)、Short (整数)
+ **COL\$1NAME** — 集計する列の名前。

  **列でサポートされている型**: Byte (バイト)、Decimal (十進数)、Double (倍精度浮動小数点数)、Float (浮動小数点数)、Integer (整数)、Long (整数)、Short (整数)

**例: 平均**

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

**例: 合計**

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

**例: 参照データセットの列の平均**

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

**ルール**

```
AggregateMatch <AGG_EXP_1> <AGG_EXP_2> <EXPRESSION>
```
+ **AGG\$1EXP\$11** – 最初の列の集計。

  列でサポートされている型: Byte (バイト)、Decimal (十進数)、Double (倍精度浮動小数点数)、Float (浮動小数点数)、Integer (整数)、Long (整数)、Short (整数)

  **列でサポートされている型**: Byte (バイト)、Decimal (十進数)、Double (倍精度浮動小数点数)、Float (浮動小数点数)、Integer (整数)、Long (整数)、Short (整数)
+ **AGG\$1EXP\$12** – 2 番目の列の集計。

  列でサポートされている型: Byte (バイト)、Decimal (十進数)、Double (倍精度浮動小数点数)、Float (浮動小数点数)、Integer (整数)、Long (整数)、Short (整数)

  **列でサポートされている型**: Byte (バイト)、Decimal (十進数)、Double (倍精度浮動小数点数)、Float (浮動小数点数)、Integer (整数)、Long (整数)、Short (整数)
+ **EXPRESSION** – ルールタイプの応答に対して実行し、論地値を生成するための式。詳細については、「[表現](dqdl.md#dqdl-syntax-rule-expressions)」を参照してください。

**例: 合計を使用した Aggregate Match**

次のルール例では、`amount` 列の値の合計が、`total_amount` 列の値の合計と完全に等しいかをチェックします。

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

**例: 平均を使用した Aggregate Match**

次のルール例では、`ratings` 列の値の平均が、`reference` データセットの `ratings` 列における値の平均の、90% 以上と等しいかをチェックします。参照データセットは、ETL またはデータカタログ体験の、追加のデータソースとして提供されます。

AWS Glue ETL では、以下を使用できます。

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

AWS Glue データカタログでは、以下を使用できます。

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

**Null 動作**

 `AggregateMatch` ルールは、集計方法 (合計/平均) の計算で NULL 値の行を無視します。例: 

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

 `units` 列の平均は (0 \$1 20 \$1 40) / 3 = 20 になります。行 101 および 103 はこの計算の対象になりません。