

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

# 集合列表函数
<a name="COLLECT_LIST"></a>

COLLECT\_LIST 函数收集并返回非唯一元素的列表。

当您想要将一组行中的多个值收集到单个数组或列表数据结构中时，这种类型的函数非常有用。

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

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

```
collect_list(expr)
```

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

 *expr*   
任何类型的表达式。

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

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

不包括空值。

如果指定了 DISTINCT，则该函数仅收集唯一值，并且是`collect_set `聚合函数的同义词。

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

以下查询将 col 列中的所有值收集到一个列表中。该`VALUES`子句用于创建包含三行的内联表，其中每行都有单列 col，其值分别为 1、2 和 1。然后使用该`collect_list() `函数将 col 列中的所有值聚合到一个数组中。此 SQL 语句的输出将是数组`[1,2,1]`，其中包含 col 列中的所有值，按它们在输入数据中出现的顺序排列。

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