MySQL:计算标准偏差的正确方法
我有不同人的体重 平均值为:MySQL:计算标准偏差的正确方法,mysql,Mysql,我有不同人的体重 平均值为: select avg(weight) as avg_weight from table; 但是stddev()和std()之间有什么区别呢?是否有可能获得平均重量的标准偏差 这是正确的方法吗 select stddev(weight) from table; /* -> is here where the function avg(weight) included? */ 或者我需要这样的东西: select stddev(avg(weight)) fr
select avg(weight) as avg_weight
from table;
但是stddev()
和std()
之间有什么区别呢?是否有可能获得平均重量的标准偏差
这是正确的方法吗
select stddev(weight)
from table; /* -> is here where the function avg(weight) included? */
或者我需要这样的东西:
select stddev(avg(weight))
from table; /* (but this does not work) */
谢谢。在MySQL中,它们提供了与标准偏差相关的四种不同函数。他们可能只提供了两个
STDDEV_POP
和STDDEV_SAMP
(人口与样本SD)。它们提供了另外两个,以与标准SQL(STD
)和Oracle(STDDEV
)兼容
以下是来自以下方面的描述:
STD(expr)
返回表达式的总体标准偏差。这是标准SQL的扩展。可以改用标准SQL函数STDDEV_POP()
如果没有匹配的行,STD()将返回NULL
STDDEV(expr)
返回表达式的总体标准偏差。提供此功能是为了与Oracle兼容。可以改用标准SQL函数STDDEV_POP()
如果没有匹配的行,STDDEV()将返回NULL
STDDEV\u POP(expr)
返回expr的总体标准偏差(VAR_POP()的平方根)。您还可以使用STD()或STDDEV(),它们是等效的,但不是标准的SQL
如果没有匹配的行,STDDEV_POP()将返回NULL
STDDEV_SAMP(expr)
返回expr的样本标准偏差(VAR_SAMP()的平方根)
如果没有匹配的行,STDDEV_SAMP()将返回NULL。您不能在STD内部使用AVG或任何其他聚合函数。每个函数都在一列中
SELECT
AVG(table.column) AS average_,
STD(table.column) AS std_,
etc....
FROM
table;
这个问题可能有太多的答案。你们为什么不从这里读一下:你们能告诉我这是正确的吗?请从表中选择STDEV(重量);