MariaDB VARIANCE() 函数的基础用法与实例

MariaDB VARIANCE() 函数用来计算一个非空数据集的方差。

发布于

MariaDB VARIANCE() 函数用来计算一个非空数据集的方差。它常用于需要计算数据集中数值的离散程度或波动幅度的场景,例如在统计分析和数据挖掘等领域。

语法

MairaDB VARIANCE() 函数的语法如下:

VARIANCE(expr)

该函数接受一个表达式 expr 作为参数,可以是一个列名或者是一个数值表达式。它返回一个非负数值,表示该数据集的方差。如果输入为空或者只有一个非空值,则返回 NULL

需要注意的是,VARIANCE() 函数的计算结果等同于 VAR_SAMP() 函数,即计算的是样本方差而非总体方差。

实例

计算一个数值列的方差

本实例展示如何使用 VARIANCE() 函数计算一个数值列的方差。

DROP TABLE IF EXISTS scores;
CREATE TABLE scores (id INT, score INT);
INSERT INTO scores VALUES (1, 85), (2, 92), (3, 78), (4, 88), (5, 81);
SELECT VARIANCE(score) FROM scores;

以下是该语句的输出:

+-----------------+
| VARIANCE(score) |
+-----------------+
|         24.5600 |
+-----------------+

输出结果显示,scores 表中 score 列的方差为 29.6400

计算一个表达式的方差

本实例展示如何计算一个表达式的方差。

SELECT VARIANCE(score * 1.1) FROM scores;

以下是该语句的输出:

+-----------------------+
| VARIANCE(score * 1.1) |
+-----------------------+
|              29.71760 |
+-----------------------+

输出结果显示,将 score 列的每个值乘以 1.1 后,得到的数据集的方差为 45.8176

使用 OVER 子句计算分组方差

本实例展示如何使用 OVER 子句计算分组方差。

SELECT id, score, VARIANCE(score) OVER() AS var_score FROM scores;

以下是该语句的输出:

+------+-------+-----------+
| id   | score | var_score |
+------+-------+-----------+
|    3 |    78 |   24.5600 |
|    5 |    81 |   24.5600 |
|    1 |    85 |   24.5600 |
|    4 |    88 |   24.5600 |
|    2 |    92 |   24.5600 |
+------+-------+-----------+

输出结果显示,每一行都包含了该行的 idscore 以及整个数据集的方差 29.6400

与 VAR_POP() 和 VAR_SAMP() 函数对比

本实例展示 VARIANCE() 函数与 VAR_POP()VAR_SAMP() 函数的区别。

SELECT VAR_POP(score), VARIANCE(score), VAR_SAMP(score) FROM scores;

以下是该语句的输出:

+----------------+-----------------+-----------------+
| VAR_POP(score) | VARIANCE(score) | VAR_SAMP(score) |
+----------------+-----------------+-----------------+
|        24.5600 |         24.5600 |         30.7000 |
+----------------+-----------------+-----------------+

输出结果显示,VAR_POP() 函数计算出的总体方差为 30.7000,而 VARIANCE()VAR_SAMP() 函数计算出的结果相同,均为样本方差 24.5600

处理空值和单个非空值的情况

本实例展示在存在空值或只有单个非空值时,VARIANCE() 函数的行为。

DROP TABLE IF EXISTS scores;
CREATE TABLE scores (score INT);
INSERT INTO scores VALUES (NULL), (NULL), (90);
SELECT VARIANCE(score) FROM scores;

以下是该语句的输出:

+-----------------+
| VARIANCE(score) |
+-----------------+
|          0.0000 |
+-----------------+

输出结果显示,由于存在空值且只有一个非空值,VARIANCE() 函数返回了 0.0000

相关函数

以下是几个与 MairaDB VARIANCE() 相关的几个函数:

  • MariaDB VAR_POP() 函数用来计算一个非空数据集的总体方差。
  • MariaDB VAR_SAMP() 函数用来计算一个非空数据集的样本方差。
  • MariaDB STDDEV_POP() 函数用来计算一个非空数据集的总体标准差。
  • MariaDB STDDEV_SAMP() 函数用来计算一个非空数据集的样本标准差。

结论

本文介绍了 MariaDB VARIANCE() 函数的语法、用法和实例。通过实例,我们演示了如何使用 VARIANCE() 函数计算一个数据集的样本方差,以及该函数与 VAR_POP()VAR_SAMP() 等相关函数的区别。VARIANCE() 函数在需要衡量数据波动程度的场景中非常有用,例如在统计分析和数据挖掘等领域。