データベースに数字の列があります。標準偏差を計算するにはどうすればよいですか? stddev 関数を使用したくありません。
5169 次
2 に答える
1
ちょっと気になったので、実際の STDEV() をテストすることにしました。さて、組み込み関数を釘付けにすることができませんでした。
近くにいました... 0.000141009220002264 または 0.00748% オフ
また、Total Average と Count は float に変換する必要があります (分散は decimal の方が大きかった)
以下の例は、私の 10 年利回りの米国債利回り表を追っています (重要ではありません)。
Select SQLFunction = Stdev([TR_Y10])
,ManualCalc = Sqrt(Sum(Power(((cast([TR_Y10] as float)-B.TotalAvg)),2) / B.TotalCnt))
,Variance = Stdev([TR_Y10]) - Sqrt(Sum(Power(((cast([TR_Y10] as float)-B.TotalAvg)),2) / B.TotalCnt))
From [Chinrus-Shared].[dbo].[DS_Treasury_Rates]
Join (Select TotalAvg=Avg(cast([TR_Y10] as float)),TotalCnt=count(*) From [Chinrus-Shared].[dbo].[DS_Treasury_Rates]) B on 1=1
戻り値
SQLFunction ManualCalc Variance
1.88409468982299 1.88395368060299 0.000141009220002264
于 2016-10-09T21:45:42.713 に答える