

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 集計関数
<a name="sql-functions-agg-spark"></a>

Spark SQL AWS Clean Rooms の集計関数は、行のグループに対して計算またはオペレーションを実行し、単一の値を返すために使用されます。データ分析や要約タスクに不可欠です。

AWS Clean Rooms Spark SQL は、次の集計関数をサポートしています。

**Topics**
+ [ANY\$1VALUE 関数](ANY_VALUE.md)
+ [APPROX COUNT\$1DISTINCT 関数](approx-count-distinct.md)
+ [APPROX PERCENTILE 関数](approx-percentile.md)
+ [AVG 関数](avg-function.md)
+ [BOOL\$1AND 関数](BOOL_AND.md)
+ [BOOL\$1OR 関数](BOOL_OR.md)
+ [CARDINALITY 関数](CARDINALITY.md)
+ [COLLECT\$1LIST 関数](COLLECT_LIST.md)
+ [COLLECT\$1SET 関数](COLLECT_SET.md)
+ [COUNT および COUNT DISTINCT 関数](count-function.md)
+ [COUNT 関数](COUNT.md)
+ [MAX 関数](MAX.md)
+ [MEDIAN 関数](MEDIAN.md)
+ [MIN 関数](MIN.md)
+ [PERCENTILE 関数](percentile.md)
+ [SKEWNESS 関数](SKEWNESS.md)
+ [STDDEV\$1SAMP および STDDEV\$1POP 関数](STDDEV_functions.md)
+ [SUM および SUM DISTINCT 関数](sum-function.md)
+ [VAR\$1SAMP および VAR\$1POP 関数](VARIANCE_functions.md)

# ANY\$1VALUE 関数
<a name="ANY_VALUE"></a>

ANY\$1VALUE 関数は、入力式の値から任意の値を非決定的に返します。この関数は、入力式で行が返されない場合に NULL を返すことができます。

## 構文
<a name="ANY_VALUE-synopsis"></a>

```
ANY_VALUE (expression[, isIgnoreNull] )
```

## 引数
<a name="ANY_VALUE-arguments"></a>

 *expression *   
関数が動作するターゲット列または式。*式*は、以下に示すデータ型の 1 つを取ります。

*isIgnoreNull*  
関数が NULL 以外の値のみを返すかどうかを決定するブール値。

## 戻り値
<a name="ANY_VALUE-returns"></a>

同じデータ型を *expression* として返します。

## 使用に関する注意事項
<a name="ANY_VALUE-usage-notes"></a>

列の ANY\$1VALUE 関数を指定するステートメントに 2 番目の列参照も含まれている場合、2 番目の列は GROUP BY 句に含めるか、集計関数に含める必要があります。

## 例
<a name="ANY_VALUE-examples"></a>

次の例では、`eventname` が `Eagles` である任意の `dateid` のインスタンスを返します。

```
select any_value(dateid) as dateid, eventname from event where eventname ='Eagles' group by eventname;
```

結果は、以下のとおりです。

```
dateid | eventname
-------+---------------
 1878  | Eagles
```

次の例では、`eventname` が `Eagles` または `Cold War Kids` である任意の `dateid` のインスタンスを返します。

```
select any_value(dateid) as dateid, eventname from event where eventname in('Eagles', 'Cold War Kids') group by eventname;
```

結果は、以下のとおりです。

```
dateid | eventname
-------+---------------
 1922  | Cold War Kids
 1878  | Eagles
```

# APPROX COUNT\$1DISTINCT 関数
<a name="approx-count-distinct"></a>

APPROX COUNT\$1DISTINCT を使用すると、列またはデータセット内の一意の値の数を効率的に見積もることができます。

## 構文
<a name="approx-count-distinct-syntax"></a>

```
approx_count_distinct(expr[, relativeSD])
```

## 引数
<a name="approx-count-distinct-arguments"></a>

 expr**   
一意の値の数を推定する式または列。  
1 つの列、複雑な式、または列の組み合わせを指定できます。

*relativeSD*  
見積りの望ましい相対標準偏差を指定するオプションのパラメータ。  
これは 0～1 の値で、推定値の最大許容相対誤差を表します。relativeSD 値が小さいほど、より正確ですが推定が遅くなります。  
このパラメータを指定しない場合、デフォルト値 (通常は約 0.05 または 5%) が使用されます。

## 戻り値
<a name="approx-count-distinct-returns"></a>

HyperLogLog\$1\$1 による推定基数を返します。 relativeSD は、許容される最大相対標準偏差を定義します。

## 例
<a name="approx-count-distinct-example"></a>

次のクエリは、`col1`列内の一意の値の数を推定し、相対標準偏差は 1% (0.01) です。

```
SELECT approx_count_distinct(col1, 0.01)
```

次のクエリでは、`col1`列に 3 つの一意の値 (値 1、2、3) があると推定します。

```
SELECT approx_count_distinct(col1) FROM VALUES (1), (1), (2), (2), (3) tab(col1)
```

# APPROX PERCENTILE 関数
<a name="approx-percentile"></a>

APPROX PERCENTILE は、データセット全体をソートすることなく、特定の式または列のパーセンタイル値を推定するために使用されます。この関数は、正確なパーセンタイル計算を実行する計算オーバーヘッドなしで、大規模なデータセットの分布をすばやく把握したり、パーセンタイルベースのメトリクスを追跡したりするシナリオに役立ちます。ただし、速度と精度のトレードオフを理解し、ユースケースの特定の要件に基づいて適切なエラー耐性を選択することが重要です。

## 構文
<a name="approx-percentile-syntax"></a>

```
APPROX_PERCENTILE(expr, percentile [, accuracy])
```

## 引数
<a name="approx-percentile-syntax.arguments"></a>

 expr**   
パーセンタイル値を推定する式または列。  
1 つの列、複雑な式、または列の組み合わせを指定できます。

*percentile*  
推定するパーセンタイル値。0～1 の値で表されます。  
たとえば、0.5 は 50 パーセンタイル (中央値) に対応します。

*精度*  
パーセンタイル推定値の望ましい精度を指定するオプションのパラメータ。これは 0～1 の値で、推定値の最大許容相対誤差を表します。`accuracy` 値が小さいほど、より正確ですが推定が遅くなります。このパラメータを指定しない場合、デフォルト値 (通常は約 0.05 または 5%) が使用されます。

## 戻り値
<a name="approx-percentile-syntax.returns"></a>

数値または ANSI 間隔列の col の近似パーセンタイルを返します。これは、順序付けられた col 値 (最小から最大にソート) の最小値であり、col 値の割合が 値より小さいか、その値と等しくならないようにします。

パーセンテージの値は 0.0 から 1.0 の間でなければなりません。精度パラメータ (デフォルト: 10000) は、メモリのコストで近似精度を制御する正の数値リテラルです。

精度の値が大きいほど精度が向上します。 `1.0/accuracy`は近似の相対誤差です。

percentage が配列の場合、割合配列の各値は 0.0 から 1.0 の間である必要があります。この場合、 は指定されたパーセンテージ配列で列列列の近似パーセンタイル配列を返します。

## 例
<a name="approx-percentile-syntax-example"></a>

次のクエリは、`response_time`列の 95 パーセンタイルを推定し、最大相対誤差は 1% (0.01) です。

```
SELECT APPROX_PERCENTILE(response_time, 0.95, 0.01) AS p95_response_time
FROM my_table;
```

次のクエリは、`tab`テーブル内の`col`列の 50 パーセンタイル値、40 パーセンタイル値、および 10 パーセンタイル値を推定します。

```
SELECT approx_percentile(col, array(0.5, 0.4, 0.1), 100) FROM VALUES (0), (1), (2), (10) AS tab(col)
```

次のクエリは、col 列の値の 50 パーセンタイル (中央値) を推定します。

```
SELECT approx_percentile(col, 0.5, 100) FROM VALUES (0), (6), (7), (9), (10) AS tab(col)
```

# AVG 関数
<a name="avg-function"></a>

AVG 関数は、入力式の値の平均 (算術平均) を返します。AVG 関数は数値に対してはたらき、NULL 値は無視します。

## 構文
<a name="avg-function-syntax"></a>

```
AVG (column)
```

## 引数
<a name="avg-function-arguments"></a>

*column*  
関数の対象となる列。列は、以下に示すデータ型の 1 つを取ります。  
+ SMALLINT
+ INTEGER
+ BIGINT
+ DECIMAL
+ DOUBLE
+ FLOAT

## データ型
<a name="avg-function-data-types"></a>

AVG 関数でサポートされる引数の型は、SMALLINT、INTEGER、BIGINT、DECIMAL、および DOUBLE です。

AVG 関数でサポートされる戻り値の型は次のとおりです。
+ 整数型の引数の場合は BIGINT
+ 浮動小数点の引数の場合は DOUBLE
+ 他の引数型については、式と同じデータ型を返します。

DECIMAL 引数を使用した AVG 関数の結果のデフォルト精度は 38 です。結果のスケールは、引数のスケールと同じです。例えば、DEC(5,2) 列の AVG は DEC(38,2) データ型を返します。

## 例
<a name="avg-function-example"></a>

SALES テーブルから、取引ごとの平均販売数量を求めます。

```
select avg(qtysold) from sales;
```

# BOOL\$1AND 関数
<a name="BOOL_AND"></a>

BOOL\$1AND 関数は、単一のブール値、整数値、または式に対して動作します。この関数は、BIT\$1AND 関数と BIT\$1OR 関数に同様のロジックを適用します。この関数の戻り値の型はブール値 (`true` または `false`) です。

セットの値がすべて true の場合、BOOL\$1AND 関数は `true` (`t`) を返します。いずれかの値が false の場合、関数は `false` (`f`) を返します。

## 構文
<a name="BOOL_AND-synopsis"></a>

```
BOOL_AND ( [DISTINCT | ALL] expression )
```

## 引数
<a name="BOOL_AND-arguments"></a>

 *expression *   
関数の対象となる列または式。この式には BOOLEAN または整数のデータ型がある必要があります。関数の戻り値の型は BOOLEAN です。

DISTINCT \$1 ALL  
引数 DISTINCT を指定すると、この関数は結果を計算する前に指定された式から重複した値をすべて削除します。引数 ALL 指定すると、この関数は重複する値をすべて保持します。ALL がデフォルトです。

## 例
<a name="bool_and_example"></a>

ブール関数をブール式または整数式のどちらかに対して使用できます。

例えば、次のクエリは複数のブール列のある TICKIT データベースの標準 USERS テーブルから結果を返します。

BOOL\$1AND 関数は 5 行すべてに `false` を返します。これら各州のすべてのユーザーがスポーツを好きというわけではありません。

```
select state, bool_and(likesports) from users 
group by state order by state limit 5;

state | bool_and
------+---------
AB    | f
AK    | f
AL    | f
AZ    | f
BC    | f
(5 rows)
```

# BOOL\$1OR 関数
<a name="BOOL_OR"></a>

BOOL\$1OR 関数は、単一のブール値、整数値、または式に対して動作します。この関数は、BIT\$1AND 関数と BIT\$1OR 関数に同様のロジックを適用します。この関数の戻り値の型はブール値 (`true`、`false`、または `NULL`) です。

セットの値が `true` の場合、BOOL\$1OR 関数は `true` (`t`) を返します。セットの値が `false` の場合、関数は `false` (`f`) を返します。値が不明な場合は NULL を返すことができます。

## 構文
<a name="BOOL_OR-synopsis"></a>

```
BOOL_OR ( [DISTINCT | ALL] expression )
```

## 引数
<a name="BOOL_OR-arguments"></a>

 *expression *   
関数の対象となる列または式。この式には BOOLEAN または整数のデータ型がある必要があります。関数の戻り値の型は BOOLEAN です。

DISTINCT \$1 ALL  
引数 DISTINCT を指定すると、この関数は結果を計算する前に指定された式から重複した値をすべて削除します。引数 ALL 指定すると、この関数は重複する値をすべて保持します。ALL がデフォルトです。

## 例
<a name="bool_or_example"></a>

ブール関数はブール式または整数式のどちらかで使用できます。例えば、次のクエリは複数のブール列のある TICKIT データベースの標準 USERS テーブルから結果を返します。

BOOL\$1OR 関数は 5 行すべてに `true` を返します。これらの州のそれぞれにおいて少なくとも 1 人のユーザーがスポーツを好きです。

```
select state, bool_or(likesports) from users 
group by state order by state limit 5;

state | bool_or 
------+--------
AB    | t      
AK    | t      
AL    | t       
AZ    | t       
BC    | t       
(5 rows)
```

次の例は、NULL を返します。

```
SELECT BOOL_OR(NULL = '123')
               bool_or
------                  
NULL
```

# CARDINALITY 関数
<a name="CARDINALITY"></a>

CARDINALITY 関数は、ARRAY 式または MAP 式 (*expr*) のサイズを返します。

この関数は、配列のサイズまたは長さを見つけるのに役立ちます。

## 構文
<a name="CARDINALITY-syntax"></a>

```
cardinality(expr)
```

## 引数
<a name="CARDINALITY-arguments"></a>

 expr**   
ARRAY 式または MAP 式。

## 戻り値
<a name="CARDINALITY-returns"></a>

配列またはマップ (INTEGER) のサイズを返します。

が に設定されている場合、`false`または が に設定されている場合`sizeOfNull`、関数`enabled`は null 入力`NULL`を返します`true`。

それ以外の場合、関数は null 入力`-1`を返します。デフォルト設定では、関数は null 入力`-1`に対して を返します。

## 例
<a name="CARDINALITY-example"></a>

次のクエリは、指定された配列の基数または要素の数を計算します。配列 (`'b', 'd', 'c', 'a'`) には 4 つの要素があるため、このクエリの出力は になります`4`。

```
SELECT cardinality(array('b', 'd', 'c', 'a'));
 4
```

# COLLECT\$1LIST 関数
<a name="COLLECT_LIST"></a>

COLLECT\$1LIST 関数は、一意でない要素のリストを収集して返します。

このタイプの関数は、行のセットから複数の値を単一の配列またはリストデータ構造に収集する場合に便利です。

**注記**  
収集された結果の順序は行の順序に依存するため、関数は非決定的です。シャッフル操作の実行後に非決定的になる可能性があります。

## 構文
<a name="COLLECT_LIST-syntax"></a>

```
collect_list(expr)
```

## 引数
<a name="COLLECT_LIST-arguments"></a>

 expr**   
任意のタイプの式。

## 戻り値
<a name="COLLECT_LIST-returns"></a>

引数タイプの ARRAY を返します。配列内の要素の順序は非決定的です。

NULL 値は除外されます。

DISTINCT が指定されている場合、関数は一意の値のみを収集し、`collect_set `集計関数のシノニムです。

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

次のクエリは、col 列からすべての値をリストに収集します。`VALUES` 句は、3 行のインラインテーブルを作成するために使用されます。各行の列列はそれぞれ 1、2、1 です。次に、 `collect_list() `関数を使用して、col 列のすべての値を 1 つの配列に集約します。この SQL ステートメントの出力は配列 となり`[1,2,1]`、入力データに表示された順序で col 列のすべての値が含まれます。

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

# COLLECT\$1SET 関数
<a name="COLLECT_SET"></a>

COLLECT\$1SET 関数は、一意の要素のセットを収集して返します。

この関数は、重複を含めずに、行のセットからすべての個別の値を 1 つのデータ構造に収集する場合に便利です。

**注記**  
収集された結果の順序は行の順序に依存するため、関数は非決定的です。シャッフル操作の実行後に非決定的になる可能性があります。

## 構文
<a name="COLLECT_SET-syntax"></a>

```
collect_set(expr)
```

## 引数
<a name="COLLECT_SET-arguments"></a>

 expr**   
MAP を除く任意のタイプの式。

## 戻り値
<a name="COLLECT_SET-returns"></a>

引数タイプの ARRAY を返します。配列内の要素の順序は非決定的です。

NULL 値は除外されます。

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

次のクエリは、col 列からすべての一意の値をセットに収集します。`VALUES` 句は、3 行のインラインテーブルを作成するために使用されます。各行の列列はそれぞれ 1、2、1 です。次に、 `collect_set()`関数を使用して、col 列のすべての一意の値を 1 つのセットに集約します。この SQL ステートメントの出力は`[1,2]`、col 列の一意の値を含むセット になります。重複する値 1 は、結果に 1 回のみ含まれます。

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

# COUNT および COUNT DISTINCT 関数
<a name="count-function"></a>

COUNT 関数は、式で定義された行をカウントします。COUNT DISTINCT 関数は、列または式内の個別の非 NULL 値の数を計算します。この関数は、カウントを行う前に指定された式から重複した値をすべて削除します。

## 構文
<a name="count-function-syntax"></a>

```
COUNT (DISTINCT column)
```

## 引数
<a name="count-function-arguments"></a>

*column*  
関数の対象となる列。

## データ型
<a name="count-function-data-types"></a>

COUNT 関数および COUNT DISTINCT 関数は、引数のデータ型をすべてサポートしています。

COUNT DISTINCT 関数は BIGINT を返します。

## 例
<a name="count-function-examples"></a>

フロリダ州のユーザーをすべてカウントします。

```
select count (identifier) from users where state='FL';
```

EVENT テーブルから一意の会場 ID をすべてカウントします。

```
select count (distinct venueid) as venues from event;
```

# COUNT 関数
<a name="COUNT"></a>

 COUNT 関数は式で定義された行をカウントします。

COUNT 関数には 3 つのバリエーションがあります。
+ COUNT(\$1) は null を含むかどうかにかかわらず、ターゲットテーブルのすべての行をカウントします。
+ COUNT ( *expression* ) は、特定の列または式にある Null 以外の値を持つ行数を計算します。
+ COUNT ( DISTINCT *expression* ) は、列または式にある Null 以外の一意な値の数を計算します。

## 構文
<a name="COUNT-synopsis"></a>

```
COUNT( * | expression )
```

```
COUNT ( [ DISTINCT | ALL ] expression )
```

## 引数
<a name="COUNT-arguments"></a>

 *expression *   
関数の対象となる列または式。COUNT 関数は引数のデータ型をすべてサポートしています。

DISTINCT \$1 ALL  
引数 DISTINCT を指定すると、この関数はカウントを行う前に指定された式から重複した値をすべて削除します。引数 ALL を指定すると、この関数はカウントに使用する式から重複する値をすべて保持します。ALL がデフォルトです。

## 戻り型
<a name="Supported_data_types_count"></a>

COUNT 関数は BIGINT を返します。

## 例
<a name="COUNT-examples"></a>

フロリダ州のユーザーをすべてカウントします。

```
select count(*) from users where state='FL';

count
-------
510
```

EVENT テーブルからすべてのイベント名をカウントします。

```
select count(eventname) from event;

count
-------
8798
```

EVENT テーブルからすべてのイベント名をカウントします。

```
select count(all eventname) from event;

count
-------
8798
```

EVENT テーブルから一意の会場 ID をすべてカウントします。

```
select count(distinct venueid) as venues from event;

venues
--------
204
```

4 枚より多いチケットをまとめて販売した販売者ごとの回数をカウントします。販売者 ID で結果をグループ化します。

```
select count(*), sellerid from listing 
where numtickets > 4
group by sellerid
order by 1 desc, 2;

count | sellerid
------+----------
12    |    6386
11    |    17304
11    |    20123
11    |    25428
...
```

# MAX 関数
<a name="MAX"></a>

 MAX 関数は行のセットの最大値を返します。DISTINCT または ALL が使用される可能性がありますが、結果には影響しません。

## 構文
<a name="MAX-synopsis"></a>

```
MAX ( [ DISTINCT | ALL ] expression )
```

## 引数
<a name="MAX-arguments"></a>

 *expression *   
関数の対象となる列または式。*式*は任意の数値データ型です。

DISTINCT \$1 ALL   
引数 DISTINCT を指定すると、この関数は最大値を計算する前に指定された式から重複した値をすべて削除します。引数 ALL を指定すると、この関数は最大値を計算する式から重複する値をすべて保持します。ALL がデフォルトです。

## データ型
<a name="Supported_data_types_max"></a>

同じデータ型を *expression* として返します。

## 例
<a name="MAX-examples"></a>

すべての販売から最高支払価格を検索します。

```
select max(pricepaid) from sales;

max
----------
12624.00
(1 row)
```

すべての販売からチケットごとの最高支払価格を検索します。

```
select max(pricepaid/qtysold) as max_ticket_price
from sales;

max_ticket_price
-----------------
2500.00000000
(1 row)
```

# MEDIAN 関数
<a name="MEDIAN"></a>

## 構文
<a name="MEDIAN-synopsis"></a>

```
MEDIAN ( median_expression )
```

## 引数
<a name="MEDIAN-arguments"></a>

 *median\$1expression*   
関数の対象となる列または式。

# MIN 関数
<a name="MIN"></a>

 MIN 関数は行のセットの最小値を返します。DISTINCT または ALL が使用される可能性がありますが、結果には影響しません。

## 構文
<a name="MIN-synopsis"></a>

```
MIN ( [ DISTINCT | ALL ] expression )
```

## 引数
<a name="MIN-arguments"></a>

 *expression *   
関数の対象となる列または式。*式*は任意の数値データ型です。

DISTINCT \$1 ALL  
引数 DISTINCT を指定すると、この関数は最小値を計算する前に指定された式から重複した値をすべて削除します。引数 ALL を指定すると、この関数は最小値を計算する式から重複する値をすべて保持します。ALL がデフォルトです。

## データ型
<a name="Supported_data_types_min"></a>

 同じデータ型を *expression* として返します。

## 例
<a name="MIN-examples"></a>

すべての販売から最低支払価格を検索します。

```
select min(pricepaid) from sales;

min
-------
20.00
(1 row)
```

すべての販売からチケットごとの最低支払価格を検索します。

```
select min(pricepaid/qtysold)as min_ticket_price
from sales;

min_ticket_price
------------------
20.00000000
(1 row)
```

# PERCENTILE 関数
<a name="percentile"></a>

PERCENTILE 関数は、最初に`col`列内の値をソートし、次に指定された で値を検索することで、正確なパーセンタイル値を計算するために使用します`percentage`。

PERCENTILE 関数は、正確なパーセンタイル値を計算する必要があり、計算コストがユースケースで許容できる場合に役立ちます。APPROX\$1PERCENTILE 関数よりも正確な結果が得られますが、特に大規模なデータセットでは時間がかかる場合があります。

対照的に、APPROX\$1PERCENTILE 関数は、指定されたエラー耐性を持つパーセンタイル値の推定値を提供できる、より効率的な代替手段であり、絶対精度よりも速度が優先度が高いシナリオに適しています。

## 構文
<a name="percentile-syntax"></a>

```
percentile(col, percentage [, frequency])
```

## 引数
<a name="percentile-arguments"></a>

 *コール*   
パーセンタイル値を計算する式または列。

*パーセンテージ*  
計算するパーセンタイル値。0～1 の値で表されます。  
たとえば、0.5 は 50 パーセンタイル (中央値) に対応します。

*頻度 *  
`col` 列内の各値の頻度または重みを指定するオプションのパラメータ。指定した場合、関数は各値の頻度に基づいてパーセンタイルを計算します。

## 戻り値
<a name="percentile-returns"></a>

数値または ANSI 間隔の列列の正確なパーセンタイル値を指定されたパーセンテージで返します。

パーセンテージの値は 0.0 から 1.0 の間でなければなりません。

頻度の値は正の整数である必要があります

## 例
<a name="percentile-example"></a>

次のクエリは、 `col`列の値の 30% 以上の値を検索します。値は 0 と 10 であるため、30 パーセンタイルはデータの 30% 以上の値であるため、3.0 です。

```
SELECT percentile(col, 0.3) FROM VALUES (0), (10) AS tab(col);
 3.0
```

# SKEWNESS 関数
<a name="SKEWNESS"></a>

SKEWNESS 関数は、グループの値から計算された歪度値を返します。

歪みは、データセット内の非対称性または対称性の欠如を記述する統計的尺度です。データディストリビューションの形状に関する情報を提供します。

この関数は、データセットの統計プロパティを理解し、さらなる分析や意思決定を通知するのに役立ちます。

## 構文
<a name="SKEWNESS-syntax"></a>

```
skewness(expr)
```

## 引数
<a name="SKEWNESS-arguments"></a>

 expr**   
数値に評価される式。

## 戻り値
<a name="SKEWNESS-returns"></a>

DOUBLE を返します。

DISTINCT が指定されている場合、関数は一意の *expr* 値のセットでのみ動作します。

## 例
<a name="SKEWNESS-examples"></a>

次のクエリは、 `col`列の値の歪みを計算します。この例では、 `VALUES`句を使用して 4 行のインラインテーブルを作成します。各行の列の`col`値は -10、-20、100、1000 です。次に、 `skewness()`関数を使用して`col`列の値の歪度を計算します。結果 1.1135657469022011 は、データの歪みの程度と方向を表します。正の歪値は、データが右側に歪んでいて、値の大部分が分散の左側に集中していることを示します。負の歪値は、データが左側に歪んでいて、値の大部分がディストリビューションの右側に集中していることを示します。

```
SELECT skewness(col) FROM VALUES (-10), (-20), (100), (1000) AS tab(col);
 1.1135657469022011
```

次のクエリは、col 列の値の歪度を計算します。前の例と同様に、 `VALUES`句は 4 行のインラインテーブルを作成するために使用されます。各行には -1000、-100、10、20 の値が 1 列`col`あります。次に、 `skewness()`関数を使用して`col`列の値の歪度を計算します。結果 -1.1135657469022011 は、データの歪みの程度と方向を表します。この場合、負の歪値は、データが左側に歪んでいて、値の大部分が分布の右側に集中していることを示します。

```
SELECT skewness(col) FROM VALUES (-1000), (-100), (10), (20) AS tab(col);
 -1.1135657469022011
```

# STDDEV\$1SAMP および STDDEV\$1POP 関数
<a name="STDDEV_functions"></a>

 STDDEV\$1SAMP および STDDEV\$1POP 関数は、数値のセットの標本標準偏差と母集団標準偏差 (整数、10 進数、または浮動小数点) を返します。STDDEV\$1SAMP 関数の結果は、値の同じセットの標本分散の平方根に相当します。

STDDEV\$1SAMP および STDDEV は、同じ関数のシノニムです。

## 構文
<a name="STDDEV_functions-syntax"></a>

```
STDDEV_SAMP | STDDEV ( [ DISTINCT | ALL ] expression) STDDEV_POP ( [ DISTINCT | ALL ] expression)
```

式には数値データ型が必要です。式のデータ型にかかわらず、この関数の戻り値の型は倍精度の数値です。

**注記**  
標準偏差は浮動小数点演算を使用して計算されます。これはわずかに不正確である可能性があります。

## 使用に関する注意事項
<a name="STDDEV_usage_notes"></a>

標本標準偏差 (STDDEV または STDDEV\$1SAMP) が 1 つの値で構成される式に対して計算される場合、関数の結果は 0 ではなく、NULL になります。

## 例
<a name="STDDEV_functions-examples"></a>

次のクエリは VENUE テーブルの VENUESEATS 列の値の平均、続いて値の同じセットの標本標準偏差と母集団標準偏差を返します。VENUESEATS は INTEGER 列です。結果のスケールは 2 桁に減らされます。

```
select avg(venueseats),
cast(stddev_samp(venueseats) as dec(14,2)) stddevsamp,
cast(stddev_pop(venueseats) as dec(14,2)) stddevpop
from venue;

avg  | stddevsamp | stddevpop
-------+------------+-----------
17503 |   27847.76 |  27773.20
(1 row)
```

次のクエリは SALES テーブルの COMMISSION 列に標本標準偏差を返します。COMMISSION は DECIMAL 列です。結果のスケールは 10 桁に減らされます。

```
select cast(stddev(commission) as dec(18,10))
from sales;

stddev
----------------
130.3912659086
(1 row)
```

次のクエリは整数として COMMISSION 列の標本標準偏差をキャストします。

```
select cast(stddev(commission) as integer)
from sales;

stddev
--------
130
(1 row)
```

次のクエリは COMMISSION 列に標本標準偏差と標本分散の平方根の両方を返します。これらの計算の結果は同じです。

```
select
cast(stddev_samp(commission) as dec(18,10)) stddevsamp,
cast(sqrt(var_samp(commission)) as dec(18,10)) sqrtvarsamp
from sales;

stddevsamp   |  sqrtvarsamp
----------------+----------------
130.3912659086 | 130.3912659086
(1 row)
```

# SUM および SUM DISTINCT 関数
<a name="sum-function"></a>

SUM 関数は入力列または式の値の合計を返します。SUM 関数は数値に対してはたらき、NULL 値は無視します。

SUM DISTINCT 関数は合計を計算する前に指定された式から重複した値をすべて削除します。

## 構文
<a name="sum-function-syntax"></a>

```
SUM (DISTINCT column )
```

## 引数
<a name="sum-function-arguments"></a>

*column*  
関数の対象となる列。列は任意の数値データ型です。

## 例
<a name="sum-function-examples"></a>

SALES テーブルから、支払われたすべての手数料の合計を求めます。

```
select sum(commission) from sales
```

SALES テーブルから、支払われたすべての重複しない手数料の合計を求めます。

```
select sum (distinct (commission)) from sales
```

# VAR\$1SAMP および VAR\$1POP 関数
<a name="VARIANCE_functions"></a>

 VAR\$1SAMP および VAR\$1POP 関数は、数値のセットの標本分散と母集団分散 (整数、10 進数、または浮動小数点) を返します。VAR\$1SAMP 関数の結果は、値の同じセットの 2 乗の標本標準偏差に相当します。

VAR\$1SAMP および VARIANCE は同じ関数のシノニムです。

## 構文
<a name="VARIANCE_functions-syntax"></a>

```
VAR_SAMP | VARIANCE ( [ DISTINCT | ALL ] expression)
VAR_POP ( [ DISTINCT | ALL ] expression)
```

この式は整数、10 進数、または浮動小数点数データ型である必要があります。式のデータ型にかかわらず、この関数の戻り値の型は倍精度の数値です。

**注記**  
これらの関数の結果は、それぞれのクラスターの設定に応じて、データウェアハウスクラスターによって変わる場合があります。

## 使用に関する注意事項
<a name="VARIANCE_usage_notes"></a>

標本分散 (VARIANCE または VAR\$1SAMP) が 1 つの値で構成される式に対して計算される場合、関数の結果は 0 ではなく、NULL になります。

## 例
<a name="VARIANCE_functions-examples"></a>

次のクエリは LISTING テーブルの NUMTICKETS 列の四捨五入した標本分散と母集団分散を返します。

```
select avg(numtickets),
round(var_samp(numtickets)) varsamp,
round(var_pop(numtickets)) varpop
from listing;

avg | varsamp | varpop
-----+---------+--------
10 |      54 |     54
(1 row)
```

次のクエリは同じ計算を実行しますが、10 進値の結果をキャストします。

```
select avg(numtickets),
cast(var_samp(numtickets) as dec(10,4)) varsamp,
cast(var_pop(numtickets) as dec(10,4)) varpop
from listing;

avg | varsamp | varpop
-----+---------+---------
10 | 53.6291 | 53.6288
(1 row)
```