2016-05-17 11 views
0

時間形式に標準偏差を使用する方法。 私はDateTimeデータを持つ列を持っていますが、私は標準偏差関数を使用します しかし、Excelでこのデータを使用するときと同じ結果はありません。DateTime形式のoracleでの標準偏差関数

+0

どのような結果が得られますか? 1つは集団s.dである可能性があります。もう1つはサンプルs.dです。 – mathguy

答えて

0

明らかに、Oracleは日付の平均と標準偏差を実装していませんでした(これは理にかなっていますが、理にかなっています)。代わりに、固定日付を減算する必要があります(SYSDATEは完璧な候補です)。標準偏差の場合は、サンプルのすべてのメンバーから定数を減算しても標準偏差は変わらないため、何も追加する必要はありません。平均を計算する場合は、結果にSYSDATEを戻します。標準偏差は日数です。あなたは時間以内にそれを必要とする場合24を掛け、または86400あなたは秒でそれを必要とする場合など

例:

with input_dates (dt) as (
     select to_date ('2016/03/20 13:30:31', 'yyyy/mm/dd hh24:mi:ss') from dual union all 
     select to_date ('2016/03/22 03:14:32', 'yyyy/mm/dd hh24:mi:ss') from dual union all 
     select to_date ('2016/03/30 09:12:43', 'yyyy/mm/dd hh24:mi:ss') from dual union all 
     select to_date ('2016/04/02 19:22:35', 'yyyy/mm/dd hh24:mi:ss') from dual 
    ) 
select stddev(0+to_number(sysdate - dt)) as sample_sd, 
     stddev_pop(dt - sysdate)   as population_sd 
from input_dates; 

出力:Excelで

SAMPLE_SD POPULATION_SD 
---------- ------------- 
6.39233719 5.53592639 

  3/20/2016 13:30 
      3/22/2016 3:14 
      3/30/2016 9:12 
      4/2/2016 19:22 
STDEVA  6.392417475 
STDEV.P  5.535995925 

結果は実際には若干異なります。これはおそらく、日付を数値に変換したり、平方根などを取る際の丸めによるものです。

+0

はい。私はそれを試みるが、00:00:30のような結果を出すのを助ける。オラクルでは、これのための倍数形式があります。私は00:00:30が必要です。私はpdfレポートのグラフにその値を表します。私は複数の値* 60私はいくつかのadreの結果を与える30秒。 – user2152662

+0

私は分かりません。私は自分の答えにExcelの結果を含めましたが、標準偏差はOracleとまったく同じ形式です。おそらく誰かがstdの結果をフォーマットしました。 dev。そのように見えるExcelであなたのために? – mathguy