ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
累積標準偏差を取得する( STDDEV_SAMP )
スポンサード リンク

グループ単位に、累積標準偏差を取得するには、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を返している


スポンサード リンク


グループ単位に、レコード件数を取得する( COUNT )
グループ単位に、最大値を取得する( MAX )
グループ単位に、平均値を取得する( AVG )
グループ単位に、最小値を取得する( MIN )
グループ単位に、集計する( SUM )
グループ単位に、ランキングを取得する( RANK、DENSE_RANK )
グループ単位に、パーセントランクを取得する( PERCENT_RANK )
グループ単位に、ソートしたレコードの先頭行に集計関数を使用する( KEEP、FIRST )
グループ単位に、ソートしたレコードの最終行に集計関数を使用する( KEEP、LAST )
グループ単位に、ソートしたレコードの先頭行の値を取得する( FIRST_VALUE )
グループ単位に、ソートしたレコードの最終行の値を取得する( LAST_VALUE )
グループ単位に、検索したレコードのn行前のデータを取得する( LAG )
グループ単位に、検索したレコードのn行後のデータを取得する( LEAD )
グループ単位に、検索レコードに順番を付ける( ROW_NUMBER )
グループ単位に、先頭から指定件数のレコードを取得する( ROW_NUMBER )
グループ単位に、n件目のレコードからm件目のレコードを取得する( ROW_NUMBER )
グループ単位に、標準偏差を取得する( STDDEV )
グループ単位に、累積標準偏差を取得する( STDDEV_SAMP )
グループ単位に、母集団標準偏差を取得する( STDDEV_POP )
グループ単位に、分散を取得する( VARIANCE )
グループ単位に、累積分散を取得する( VAR_SAMP )
グループ単位に、母集団分散を取得する( VAR_POP )
グループ単位に、相関係数を取得する( CORR )

SQL(DML) へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ