MySQL Standard Deviation Functions

摘要:在本教程中,您将学习如何使用MySQL 标准差函数来计算填充标准差和样本标准差。

标准差简介

标准差是衡量数据集中值的分布程度的指标。标准差显示与平均值(均值)存在多少差异。

低标准差表明数据集中的值接近平均值。高标准差表明数据集的值分布在很大的值范围内。

标准差是方差的平方根,可以通过以下步骤计算:

  • 步骤 1. 计算数据集中所有值的平均值,得到平均数或平均值,例如,假设数据集由 1、2 和 3 组成,则平均值为 (1+2+3)/3 = 2。
  • 步骤 2. 计算每个值与平均值的差值,并对每个结果求平方,例如 (1-2) 2 = (-1) 2 = 1、(2-2) 2 = (0) 2 = 0,(3-2) 2 = (1) 2 = 1。
  • 步骤 3. 计算步骤 2 中的平均值,从而产生方差。然后对方差求平方根,得到数据集中所有值的标准差,例如 ((1 + 0 + 1)/3) = 0.816497 的平方根

总体标准差与样本标准差

如果将数据集中的所有值都纳入计算,则该标准差称为总体标准差。但是,如果将值的子集或样本纳入计算中,则该标准差称为样本标准差。

西格玛字母 (σ) 表示标准差。以下方程说明了如何计算总体标准差和样本标准差:

总体标准差:

MySQL population standard deviation formula

样本标准差:

MySQL sample standard deviation formula

总体标准差和样本标准差的计算略有不同。计算样本标准差的方差时,除以 N-1 而不是 N,其中 N 是数据集中的值的数量。

MySQL 标准差函数

MySQL 使您可以轻松计算总体标准差和样本标准差。

要计算总体标准差,您可以使用以下函数之一:

  • STD(expression) – 返回表达式的总体标准差。如果没有匹配的行, STD函数将返回NULL
  • STDDEV(expression) – 相当于STD函数。它仅与 Oracle 数据库兼容。
  • STDEV_POP(expression) – 相当于STD函数。

要计算样本标准差,请使用STDDEV_SAMP (expression)函数。

MySQL还提供了一些用于总体方差和样本方差计算的函数:

  • VAR_POP(expression) – 计算表达式的总体标准方差。
  • VARIANCE(expression) – 相当于VAR_POP函数。
  • VAR_SAMP(expression) – 计算表达式的样本标准方差。

MySQL 标准差函数示例

让我们看一下示例数据库中的orders表。

总体标准差函数的示例

首先,以下查询返回orders表中的客户编号及其订单数:

SELECT customerNumber, 
       COUNT(*) orderCount
FROM orders
WHERE status = 'Shipped'
GROUP BY customerNumber;Code language: SQL (Structured Query Language) (sql)

其次,以下语句计算客户订单数的总体标准差:

SELECT FORMAT(STD(orderCount),2)
FROM (SELECT customerNumber, count(*) orderCount
FROM orders
GROUP BY customerNumber) t;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL STD function

请注意, FORMAT 函数用于格式化STD函数的结果。

样本标准差函数示例

假设您只想评估订单表中已发货的订单。

首先,以下查询返回客户编号及其已发货订单的编号:

SELECT customerNumber, count(*) orderCount
FROM orders
WHERE status = 'Shipped'
GROUP BY customerNumber;Code language: SQL (Structured Query Language) (sql)

其次,以下查询使用STDDEV_SAMP函数来计算样本标准差:

SELECT FORMAT(STDDEV_SAMP(orderCount),2)
FROM (SELECT customerNumber, count(*) orderCount
FROM orders
WHERE status = 'Shipped'
GROUP BY customerNumber) t;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL STDDEV_SAMP function

在本教程中,我们向您介绍了标准差的概念。然后,我们向您展示了如何使用 MySQL 标准差函数来计算表达式的总体标准差和样本标准差。

本教程有帮助吗?