カテゴリ:

集計関数 (一般)、 ウィンドウ関数 (一般、ウィンドウフレーム)

VAR_POP

グループ内のNULL 以外のレコードの母分散を返します。グループ内のすべてのレコードが NULLの場合、 NULLが返されます。

エイリアス:

VARIANCE_POP

構文

集計関数

VAR_POP( [DISTINCT] <expr1> )

ウィンドウ関数

VAR_POP( <expr1> ) OVER (
                        [ PARTITION BY <expr2> ]
                        [ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
                        )

ウィンドウフレーム 構文の詳細については、 ウィンドウフレームの構文と使用法 をご参照ください。

引数

式1

式1 は、数値データ型のいずれかに評価されるはずです。

式2

これは、パーティションを分割するオプションの式です。

式3

これは、各パーティション内で並べ替えるオプションの式です。

戻り値

返される値のデータ型は NUMBER(<precision>, <scale>) です。スケールは、処理される値に依存します。

使用上の注意

  • 単一レコード入力の場合、 STDDEV_SAMP と STDDEV は両方とも NULLを返します。これは、単一のレコードに対して STDDEV_SAMP が NULL を返し、 STDDEV が0を返すOracleの動作とは異なります。

  • VARCHAR 式が渡されると、この関数は入力を暗黙的に浮動小数点値にキャストします。キャストを実行できない場合、エラーが返されます。

  • ウィンドウ関数として呼び出された場合:

    • キーワード DISTINCT は構文的に許可されていますが、無視されます。

    • OVER 句内で ORDER BY サブ句を使用する場合、ウィンドウフレームを使用する必要があります。ウィンドウフレームが指定されていない場合、 ORDER BY は累積ウィンドウフレームを意味します。

      RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

      構文や例を含むウィンドウフレームの詳細については、 ウィンドウフレームの構文と使用法 をご参照ください。

      暗黙的なウィンドウフレームの詳細については、 ウィンドウフレームの使用上の注意 をご参照ください。

次の例は、 VAR_POP 関数の使用方法を示しています。

テーブルを作成して入力します。

create table aggr(k int, v decimal(10,2), v2 decimal(10, 2));
insert into aggr values 
   (1, 10, null),
   (2, 10, 11), 
   (2, 20, 22), 
   (2, 25, null), 
   (2, 30, 35);

VAR_POP()を呼び出して、テーブルをクエリします。

SELECT k, var_pop(v), var_pop(v2) 
    FROM aggr 
    GROUP BY k;
+---+---------------+---------------+
| K |    VAR_POP(V) |   VAR_POP(V2) |
|---+---------------+---------------|
| 1 |  0.0000000000 |          NULL |
| 2 | 54.6875000000 | 96.2222222222 |
+---+---------------+---------------+