|
スポンサード リンク
グループ単位に、累積標準偏差を取得するには、STDDEV_SAMP関数を使用する。
分析関数のSTDDEV_SAMPは、ウィンドウ(window)を操作して、累積標準偏差を取得します。
STDDEV_SAMP( 数値項目 ) |
引数で指定した数値項目の、累積標準偏差を返します。
標準偏差( STDDEV )と異なるのは、入力レコードが1行の場合は、NULLを返すところです。 |
OVER(
[ PRTITION BY 項目1,
[項目2,・・] ]
ORDER BY 項目1,
[項目2,・・] )
|
STDDEV_SAMP関数と一緒に使用します
PRTITION BY句には、グループ化対象項目を指定する
ORDERY BY句には、ソート対象の項目を指定する |
サンプル表「emp」データ
|
SQL> select * from emp;
EMP_ID DEPT_ID EMP_NAME SALARY
------ ------ ---------- ----------
E01 D01 なまえ1 150
E02 D02 なまえ2 300
E03 D03 なまえ3 300
E04 D02 なまえ4 400
E05 D03 なまえ5 500
E06 D03 なまえ6 |
例1) 列「salary」の累積標準偏差を取得します。
|
SQL> select
2 emp_id,salary,
3 stddev_samp( salary )
4 over() as stddev_samp
5 from emp;
EMP_ID SALARY STDDEV_SAMP
----- ------- -----------
E01 150 130.384048
E02 300 130.384048
E03 300 130.384048
E04 400 130.384048
E05 500 130.384048
E06 130.384048 |
例2) 列「salary」の累積標準偏差を列「dept_id」別に取得します。
|
SQL> select
2 emp_id,dept_id,salary,
3 stddev_samp(salary)
4 over(partition by dept_id ) as stddev_samp
5 from emp;
EMP_ID DEPT_ID SALARY STDDEV_SAMP
----- ----- ------- -----------
E01 D01 150
E02 D02 300 70.7106781
E04 D02 400 70.7106781
E05 D03 500 141.421356
E06 D03 141.421356
E03 D03 300 141.421356
|
※dept_id='D01'の場合は、入力レコードが1行なので、NULLを返している
スポンサード リンク
|