尝试在一段时间内获得MYSQL的滚动标准偏差。我已经尝试了以下代码,但是当我在Excel中进行检查时它不会协调。
这是我的尝试:
SELECT STDDEV_POP(sales) FROM (SELECT `sales` FROM `table` WHERE `company` = '". $company ."' AND `date` <= '". $date ."' ORDER BY `date` DESC LIMIT $period) AS subquery
我使用了$ date,所以如果我在特定日期之前需要它,我可以限制数据。 $ period指定计算标准差的时间(例如,5天)。
编辑:
根据要求,只是进一步的细节。附加的图像是在Excel中完成的检查,我刚刚从here获取了数据。
SQL小提琴是here。当日期为“2012-12-15”时,该值会重新调整为Excel表格,但不会在“2012-12-16”或“2016-12-17”
答案 0 :(得分:0)
由MySQL和Excel生成的数据进行协调。
1)在stockcharts链接中使用的方法计算偏离平方的10天平均值的标准偏差。这不是计算标准偏差的常规方法。
2)在Excel中进行测试时,我使用的是STDEV()函数,该函数假定是一个样本,但是,MySQL中使用的函数是STDDEV_POP(),它假定是一个总体。
这两点是数字无法协调的原因。一切都好!