

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# COLLECT\_SET
<a name="COLLECT_SET"></a>

COLLECT\_SET 函数收集并返回一组唯一的元素。

当您想要将一组行中的所有不同值收集到单个数据结构中而不包含任何重复值时，此函数非常有用。

**注意**  
该函数是不确定的，因为收集结果的顺序取决于行的顺序，而在执行洗牌操作后，行顺序可能不确定。

## 语法
<a name="COLLECT_SET-syntax"></a>

```
collect_set(expr)
```

## Arguments
<a name="COLLECT_SET-arguments"></a>

 *expr*   
除 MAP 之外的任何类型的表达式。

## 返回值
<a name="COLLECT_SET-returns"></a>

返回参数类型的数组。数组中元素的顺序是不确定的。

不包括空值。

## 示例
<a name="COLLECT_SET-example"></a>

以下查询将 col 列中的所有唯一值收集到一个集合中。该`VALUES`子句用于创建包含三行的内联表，其中每行都有单列 col，其值分别为 1、2 和 1。然后使用该`collect_set()`函数将 col 列中的所有唯一值聚合到一个集合中。此 SQL 语句的输出将是集合`[1,2]`，其中包含 col 列中的唯一值。重复值 1 在结果中仅包含一次。

```
SELECT collect_set(col) FROM VALUES (1), (2), (1) AS tab(col);
 [1,2]
```