

# 聚合函数
<a name="s3-select-sql-reference-aggregate"></a>

**重要**  
不再向新客户提供 Amazon S3 Select。Amazon S3 Select 的现有客户可以像往常一样继续使用该功能。[了解详情](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Amazon S3 Select 支持以下聚合函数。


| 函数 | 参数类型 | 返回类型 | 
| --- | --- | --- | 
| `AVG(expression)` | `INT`, `FLOAT`, `DECIMAL` | `DECIMAL` 适用于 `INT` 参数，`FLOAT` 适用于浮点型参数；否则与参数数据类型相同。 | 
| `COUNT` |  `-`  | `INT` | 
| `MAX(expression)` | `INT`, `DECIMAL` | 和参数类型相同。 | 
| `MIN(expression)` | `INT`, `DECIMAL` | 和参数类型相同。 | 
| `SUM(expression)` | `INT`, `FLOAT`, `DOUBLE`, `DECIMAL` | `INT` 适用于 `INT` 参数，`FLOAT` 适用于浮点型参数；否则与参数数据类型相同。 | 

## SUM 示例
<a name="s3-select-sql-reference-aggregate-case-examples"></a>

要聚合 [S3 清单报告](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html)中某个文件夹的对象总大小，请使用 `SUM` 表达式。

以下 S3 清单报告是使用 GZIP 压缩的 CSV 文件。共有三列。
+ 第一列是 S3 清单报告所用于的 S3 桶（*`DOC-EXAMPLE-BUCKET`*）的名称。
+ 第二列是唯一标识桶中对象的对象键名称。

  第一行中的 `example-folder/` 值表示文件夹 `example-folder`。在 Amazon S3 中，当您在桶中创建文件夹时，S3 使用设置为您提供的文件夹名称的键创建一个 0 字节对象。

  第二行中的 `example-folder/object1` 值表示文件夹 `example-folder` 中的对象 `object1`。

  第三行中的 `example-folder/object2` 值表示文件夹 `example-folder` 中的对象 `object2`。

  有关 S3 文件夹的更多信息，请参阅[使用文件夹在 Amazon S3 控制台中整理对象](using-folders.md)。
+ 第三列是对象大小（以字节为单位）。

```
"DOC-EXAMPLE-BUCKET","example-folder/","0"
"DOC-EXAMPLE-BUCKET","example-folder/object1","2011267"
"DOC-EXAMPLE-BUCKET","example-folder/object2","1570024"
```

要使用 `SUM` 表达式计算文件夹 `example-folder` 的总大小，请使用 Amazon S3 Select 运行 SQL 查询。

```
SELECT SUM(CAST(_3 as INT)) FROM s3object s WHERE _2 LIKE 'example-folder/%' AND _2 != 'example-folder/';
```

查询结果：

```
3581291
```