MySql - AVG()和STD()函数,奇怪的结果......

时间:2012-10-06 15:29:00

标签: mysql average

我对MySql关于标准功能的结果感到不满意: - AVG()的平均值 - STD()标准差

检查我的表'拍卖'中的以下结果:

mysql> SELECT avg(buyout) avg FROM auction where buyout <> 0 and item =72988;
+-------------+
| avg         |
+-------------+
| 234337.3622 |
+-------------+

该结果看起来正确,没问题。 但是当我跑std时:

mysql> SELECT std(buyout) std FROM auction where buyout <> 0 and item =72988;
+-------------+
| std         |
+-------------+
| 574373.6098 |
+-------------+

! SDT大于AVG(SDT&gt; AVG),这是......因为我的AVG&gt; 0而不可能。

我在哪里错了......? 提前thx!

2 个答案:

答案 0 :(得分:2)

没有数学约束,如果平均值为正,则必须小于标准偏差。

我在R

中阅读了你的数据摘录
data <- read.table("extract_72988.csv", h=1, sep="\t")

并确认

> mean(data$BUYOUT)
[1] 234337.4
> sd(data$BUYOUT)
[1] 574421.3

对您的数据进行进一步分析表明它远未正常分发

以下是数据的直方图:

histogram of buyout

这是对数转换数据的直方图

histogram of log(buyout)

最后是正常的Q-Q情节

QQ plot

答案 1 :(得分:-1)

或者换句话说,我们正在考虑拍卖价格。数据库中的每个价格都是正值。我们的均值没有减少也没有居中,大约是2.35,但是st.dev的计算返回的值高于2.35。如果我们把这个结果作为一个图表,那就意味着价格会移动一个大于平均值的平均值。如果我们从我们的均值“向左”绘制这个标准差,那么就会说有找到负价的概率 - &gt;不可能!

对吗?