MySQL 标准差
标准差是一种统计量,用于衡量一组值相对于均值的变化或离散程度。
标准差越大,数据点离均值越远。因此,数据分布越广泛,标准差就越大。当标准差较小时,意味着数值接近均值。标准差还衡量了与均值之间的差异程度。
也可以将标准差定义为方差的平方根。我们可以使用以下步骤计算标准差:
- 计算数据集中所有值的平均值以找到均值。例如,如果我们有一个包含值2、4和6的数据集,则均值为(2+4+6)/3 = 4。
- 接下来,对于每个值,计算与均值之间的差值,然后对每个结果进行平方。例如,(2-4) 2 = (-2) 2 = 4,(4-4) 2 = (0) 2 = 0,(6-4) 2 = (2) 2 = 4。
- 接下来,计算步骤2中找到的值的平均值,得到方差。例如,((4+0+4)/3) = 5.33333333。
- 最后,取方差的平方根,得到数据集的标准差。例如,(5.33333333)的平方根 = 2.3094010768。
样本标准差与总体标准差
当计算中只使用少量或子集值时,标准差称为 样本标准差 。
当计算中使用所有数据集值时,标准差称为 总体标准差 。
标准差用 sigma(σ)字母符号 表示。请参考下面的方程式,解释如何计算样本标准差和总体标准差:
简单标准差的方程式:
人口标准偏差的方程:
在上面的等式中,N是数据集中可用的值的数量。
MySQL标准差函数
MySQL提供了一种可以方便快捷地计算样本标准差和总体标准差的函数。MySQL从 5.6版本及以后 支持这些函数。
如果我们想要计算样本标准差,可以使用以下函数:
STDDEV_SAMP()函数
这个函数用于返回表达式的样本标准差(即VAR_SAMP()的平方根)。如果没有找到匹配的行,则此函数返回 NULL 。
我们可以像下面这样使用这个函数:
STDDEV_SAMP(expr);
例子:
假设我们有一张名为” employee “的表,其中包含以下数据:
以下语句计算员工表中薪水的样本标准差:
mysql> SELECT STDDEV_SAMP (salary) FROM employee;
输出:
我们会得到以下结果:
如果我们想要计算总体标准差,我们可以使用以下函数:
STD()函数
此函数用于返回给定表达式的总体标准差。它是STDDEV_POP()函数的同义词。如果找不到匹配的行,则STD()函数返回 NULL 。
我们可以按如下方式使用此函数:
STD(expr);
示例:
下面的语句计算员工表中薪水的人口标准差:
mysql> SELECT STD(salary) FROM employee;
输出:
我们将得到以下结果:
STDDEV() 函数
该函数用于通过计算给定表达式的统计信息来返回总体标准差。如果没有找到匹配的行,则 STDDEV() 函数返回 NULL 。
我们可以按照以下方式使用此函数:
STDDEV(expr);
示例:
以下语句计算员工表中薪水的样本标准差:
mysql> SELECT STDDEV(salary) FROM employee;
输出:
我们将会得到以下结果:
STDDEV_POP() 函数
该函数用于返回给定表达式的总体标准差(方差的平方根)。如果没有找到匹配的行,则 STDDEV_POP() 函数返回 NULL 。
我们可以按以下方式使用该函数:
STDDEV_POP(expr);
示例:
下面的语句计算员工表中薪水的样本标准差:
mysql> SELECT STDDEV_POP(salary) FROM employee;
输出:
我们将会得到以下结果: