

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

# dedup
<a name="CWL_QuerySyntax-Dedup"></a>

 使用 `dedup` 根據指定欄位中的特定值移除重複的結果。可以將 `dedup` 與一個或多個欄位搭配使用。如果對 `dedup` 指定一個欄位，則只會針對該欄位的每個唯一值傳回一個日誌事件。如果指定多個欄位，則會針對這些欄位的每個唯一值組合傳回一個日誌事件。

系統會根據排序順序捨棄重複項目，只會保留排序順序中的第一個結果。建議您先對結果進行排序，然後再透過 `dedup` 命令進行排序。如果在透過 `dedup` 執行之前未對結果進行排序，則會採用使用 `@timestamp` 的預設遞減排序順序。

Null 值不會被視為評估的重複項目。系統會保留任何指定欄位之具有 Null 值的日誌事件。要消除具有 null 值的字段，請採用使用 `isPresent(field)` 函數的 **`filter`**。

可以在 `dedup` 命令之後的查詢中使用的唯一查詢命令為 `limit`。

當您在查詢`dedup`中使用 時，主控台會顯示訊息，例如**顯示 Y 記錄的 X**，其中 X 是重複資料刪除的結果數目，Y 是重複資料刪除之前符合的記錄總數。這表示重複的記錄已移除，並不表示資料遺失。

 **範例：僅查看名為 `server` 之欄位的每個唯一值的最近日誌事件** 

 下列範例顯示 `server` 的每個唯一值的最近事件的 `timestamp`、`server`、`severity` 和 `message` 欄位。

```
fields @timestamp, server, severity, message 
| sort @timestamp desc 
| dedup server
```

如需 CloudWatch Logs Insights 查詢的更多範例，請參閱 [一般查詢](CWL_QuerySyntax-examples.md#CWL_QuerySyntax-examples-general)。