VAR_POP¶
グループ内のNULL 以外のレコードの母分散を返します。グループ内のすべてのレコードが NULLの場合、 NULLが返されます。
- エイリアス:
構文¶
集計関数
VAR_POP( [ DISTINCT ] <expr1> )
ウィンドウ関数
VAR_POP( [ DISTINCT ] <expr1> ) OVER (
[ PARTITION BY <expr2> ]
[ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
)
window_frame
構文の詳細については、 ウィンドウフレームの構文と使用法 をご参照ください。
引数¶
expr1
expr1
は、数値データ型のいずれかに評価されるはずです。expr2
これは、パーティションを分割するオプションの式です。
expr3
これは、各パーティション内で並べ替えるオプションの式です。
戻り値¶
返される値のデータ型は、 NUMBER(<精度>, <スケール>)
です。スケールは、処理される値に依存します。
使用上の注意¶
VARCHAR 式が渡されると、この関数は入力を暗黙的に浮動小数点値にキャストします。キャストを実行できない場合、エラーが返されます。
この関数がウィンドウ関数(つまり、 OVER 句を使用)として呼び出される場合は、
OVER 句に ORDER BY 句が含まれていると次のようになります。
ウィンドウフレームが必要です。ウィンドウフレームが明示的に指定されていない場合、 ORDER BY は累積ウィンドウフレームを意味します。
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
構文や例を含むウィンドウフレームの情報については、 ウィンドウフレームの構文と使用法 をご参照ください。
暗黙的なウィンドウフレームの情報については、 ウィンドウフレームの使用上の注意 もご参照ください。
ウィンドウ関数内でキーワード DISTINCT を使用することは禁止されており、コンパイル時間エラーが発生します。
例¶
次の例は、 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 ORDER BY k; +---+---------------+---------------+ | K | VAR_POP(V) | VAR_POP(V2) | |---+---------------+---------------| | 1 | 0.0000000000 | NULL | | 2 | 54.6875000000 | 96.2222222222 | +---+---------------+---------------+