MySQL - 标准差

Table of content


MySQL 标准差函数是用于计算数据集内值之间变化或离散程度的数学函数。

MySQL 中有两种标准差,分别是总体标准差和样本标准差。

“总体标准差”是一组数据的方差的平方根。它计算总体内的变化或离散程度。符号上用 σ(希腊字母 sigma)表示。

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

  • STD(表达式): 它计算并返回特定列中字段的总体标准差。如果指定的行不存在,则此函数返回 NULL。

  • STDDEV(表达式): 与 STD() 函数相同,但它也适用于 Oracle 数据库。

  • STDDEV_POP(表达式): 等效于 STD() 函数。

以下是计算“总体标准差”的数学公式:

// Mathematical Formula
$\sigma = \sqrt{\frac{\sum_{i=1}^n{(x-\bar x)^2}}{N-1}}$

其中,

  • σ = 总体标准差

  • N = 总体大小

  • Xi = 总体中的每个值

  • meu = 总体平均值

示例

首先,让我们使用 CREATE 语句创建一个名为 CUSTOMERS 的表,如下所示:

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR(15) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS VARCHAR(25),
   SALARY DECIMAL(10, 2),
   PRIMARY KEY(ID)
);

现在,让我们使用 INSERT 语句将值插入 CUSTOMERS 表:

INSERT INTO CUSTOMERS VALUES 
(1, 'Ramesh', '32', 'Ahmedabad', 2000),
(2, 'Khilan', '25', 'Delhi', 1500),
(3, 'Kaushik', '23', 'Kota', 2000),
(4, 'Chaitali', '26', 'Mumbai', 6500),
(5, 'Hardik','27', 'Bhopal', 8500),
(6, 'Komal', '22', 'Hyderabad', 9000),
(7, 'Muffy', '24', 'Indore', 5500);

表创建如下:

ID 姓名 (NAME) 年龄 (AGE) 地址 (ADDRESS) 工资 (SALARY)
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

STD() 函数

以下查询计算所有球员在表演赛中的得分的总体标准差:

SELECT STD(AGE) from CUSTOMERS;

输出

以下是输出:

STD(AGE)
3.063944369932459

STDDEV() 函数

STDDEV() 函数与 STD() 函数相同,但它也适用于 Oracle 数据库。

在以下查询中,我们正在计算“Score_In_Exhibition_Match”列的总体标准差:

SELECT STDDEV(AGE) FROM CUSTOMERS;

输出

输出如下:

STDDEV(AGE)
3.063944369932459

STDDEV_POP() 函数

在 MySQL 中,STDDEV_POP() 函数等效于 STD() 函数。在这里,我们正在对 CUSTOMERS 表的 AGE 列执行总体标准差。

SELECT STDDEV_POP(AGE) FROM CUSTOMERS;

输出

输出显示如下:

STDDEV_POP(AGE)
3.063944369932459

样本标准差

MySQL 标准差是方差的平方根,它计算数据的分散或展开程度。

STDDEV_SAMP() 函数用于计算列中一组值的样本标准差。

以下是计算“样本标准差”的公式:

// Mathematical formula
s = sqrt(sum((x - mean)^2) / (n - 1))

示例

在下面的示例中,让我们计算前面创建的 CUSTOMERS 表的 AGE 列的样本标准差:

SELECT STDDEV_SAMP(AGE) FROM CUSTOMERS;

输出

输出显示如下:

STDDEV_SAMP(AGE)
3.309438162646486
广告