

# 集計関数
<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` | `INT` 引数の場合は `DECIMAL`、浮動小数点の引数の場合は `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 ファイルです。3 つの列があります。
+ 最初の列は、S3 インベントリレポートの対象となる S3 バケットの名前 (*`DOC-EXAMPLE-BUCKET`*) です。
+ 2 番目の列は、バケット内のオブジェクトを一意に識別するオブジェクトキー名です。

  最初の行の `example-folder/` 値は、フォルダ `example-folder` 用です。Amazon S3 で、バケットにフォルダを作成すると、S3 は、指定したフォルダ名に設定されたキーを持つ 0 バイトのオブジェクトを作成します。

  2 行目の `example-folder/object1` 値は、`example-folder` フォルダ内のオブジェクト `object1` 用です。

  3 行目の `example-folder/object2` 値は、`example-folder` フォルダ内のオブジェクト `object2` 用です。

  S3 フォルダの詳細については、「[フォルダを使用して Amazon S3 コンソールのオブジェクトを整理する](using-folders.md)」を参照してください。
+ 3 番目の列は、バイト単位のオブジェクトサイズです。

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