MySQL - VARIANCE() 函数



MySQL 的 VARIANCE() 函数计算并返回特定列中所有值的总体标准方差,即衡量值与平均值的差异程度。

如果数据集中的所有值都相同,或者只有一个值,则方差将为 0。如果数据集中根本没有值,则函数返回 NULL。

VARIANCE() 函数与 VAR_POP() 函数具有类似的语义。

语法

以下是 MySQL VARIANCE() 函数的语法:

VARIANCE(expr);

参数

此方法接受一个参数。下面描述了该参数:

  • expr: 我们要计算方差的表达式或列。

返回值

此函数计算并返回特定列中所有值的总体标准方差。

示例

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

CREATE TABLE CUSTOMERS (
   ID INT AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

以下查询将 7 条记录插入到上面创建的表中:

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES 
(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 );

要验证记录是否已插入,请执行以下查询:

Select * From CUSTOMERS;

以下是 CUSTOMERS 表:

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

这里,我们使用 MySQL VARIANCE() 函数来计算所有客户的工资的总体标准方差:

SELECT VARIANCE(SALARY) FROM CUSTOMERS;

输出

这将产生以下结果:

VARIANCE(SALARY)
10000000

示例

以下查询将返回 0 作为输出,因为 CUSTOMERS 表中 ID = 2 和 ID = 5 的年龄是 相同 的:

SELECT VARIANCE(AGE) FROM CUSTOMERS
WHERE ID = 2;

上述查询的输出如下所示:

VARIANCE(Sale_amount)
0

现在,让我们考虑一个数据集中只有一个 的场景:

SELECT VARIANCE(AGE) FROM CUSTOMERS
WHERE ID = 3;

上述查询的结果也将为 0,因为只有一个年龄为 23 的客户:

VARIANCE(Sale_amount)
0

现在,让我们考虑一个数据集中 没有数据 的场景:

SELECT VARIANCE(AGE) FROM CUSTOMERS
WHERE ID = 10;

此查询的结果将为 NULL,因为表中不存在 ID = 3 的值:

VARIANCE(Sale_amount)
NULL
广告