

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

根據指定運算式檢查兩個資料欄彙總的比率。此規則類型適用於多個資料集。系統會評估兩個資料欄彙總，並將第一個資料欄彙總的結果除以第二個資料欄彙總的結果來產生比率。系統會根據提供的運算式檢查比率，以產生布林值回應。

**語法**

**資料欄彙總**

```
AggregateMatch <AGG_OPERATION> (<OPTIONAL_REFERENCE_ALIAS>.<COL_NAME>)
```
+ **AGG\$1OPERATION**：用於彙總的操作。目前支援 `sum` 和 `avg`。

  **支援的資料欄類型**：位元組、小數、雙精度浮點數、浮點數、整數、長整數、短整數
+ **OPTIONAL\$1REFERENCE\$1ALIAS**：若資料欄來自參考資料集且不是主資料集，則需提供此參數。如果您在 AWS Glue Data Catalog 中使用此規則，您的參考別名必須遵循格式 "<database\$1name>.<table\$1name>.<column\$1name>

  **支援的資料欄類型**：位元組、小數、雙精度浮點數、浮點數、整數、長整數、短整數
+ **COL\$1NAME**：要彙總的資料欄名稱。

  **支援的資料欄類型**：位元組、小數、雙精度浮點數、浮點數、整數、長整數、短整數

**範例：平均值**

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

**範例：總和**

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

**範例：參考資料集中資料欄的平均值**

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

**規則**

```
AggregateMatch <AGG_EXP_1> <AGG_EXP_2> <EXPRESSION>
```
+ **AGG\$1EXP\$11**：第一個資料欄彙總。

  支援的資料欄類型：位元組、小數、雙精度浮點數、浮點數、整數、長整數、短整數

  **支援的資料欄類型**：位元組、小數、雙精度浮點數、浮點數、整數、長整數、短整數
+ **AGG\$1EXP\$12**：第二個資料欄彙總。

  支援的資料欄類型：位元組、小數、雙精度浮點數、浮點數、整數、長整數、短整數

  **支援的欄類型**：位元組、小數、雙精度浮點數、浮點數、整數、長整數、短整數
+ **EXPRESSION** – 針對規則類型回應執行的運算式，以產生布林值。如需詳細資訊，請參閱[表達式](dqdl.md#dqdl-syntax-rule-expressions)。

**範例：使用總和執行彙總比對**

下列範例規則會檢查 `amount` 資料欄中的值總和是否與 `total_amount` 資料欄中的值總和完全相等。

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

**範例：使用平均值執行彙總比對**

下列範例規則會檢查 `ratings` 資料欄中值的平均值是否至少等於 `reference` 資料集之 `ratings` 資料欄中值的平均值的 90%。參考資料集會提供為 ETL 或資料目錄體驗中的其他資料來源。

在 AWS Glue ETL 中，您可以使用：

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

在 AWS Glue Data Catalog 中，您可以使用：

```
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。