Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:计算标准偏差的正确方法_Mysql - Fatal编程技术网

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(重量);