2012-04-25 5 views
4

У меня есть финансовые временные ряды цен:вычислить дисперсию, используя SQL

 
date  price variance_3 

1/1/2012 1,1 n/a 
2/1/2012 1,2 n/a 
3/1/2012 1,3  
4/1/2012 1,3 
7/1/2012 1,2 
8/1/2012 1.3 

я намерен вычислить дисперсию для каждой даты, используя последние 3 цены во времени. Вы видите шанс достичь этого, используя только SQL?

Любой намек был бы очень признателен.

ответ

2
select var_pop(price) as variance 
from (
     select price 
     from YourTable 
     order by 
       date desc 
     limit 3 
     ) as SubQueryAlias 
+0

Предлагаем Вам использовать 'VAR_POP' (или' VAR_SAMP', в зависимости от того, какой из них после) вместо 'STDDEV' учитывая ОП просили дисперсии ... – eggyal

+0

спасибо за быстрый ответ. Итак, в основном: для заполнения столбца мне нужно добавить этот SQL-код в хранимую процедуру и перемещаться по таблице, обновляя каждую строку? – caliph

+0

@eggyal: done #caliph: обязательно, или вы можете использовать любой клиентский язык для этого – Andomar

Смежные вопросы