函数名称:VAR_POP
VAR_POP([DISTINCT] expr) [FILTER (WHERE condition)]
功能描述
VAR_POP 函数用于计算一组数值数据的总体方差。方差是衡量数据分布离散程度的统计量,用于反映数据的波动性大小。通过计算总体方差,我们可以了解数据的波动情况,从而对数据进行更深入的分析。
参数说明
expr:数值类型,可以是 TINYINT、SMALLINT、INT、BIGINT、FLOAT、DOUBLE 或 DECIMAL 类型。
DISTINCT:可选参数,表示计算去重之后的集合方差。如果不设置该参数,则计算包含重复值的集合方差。
返回结果
- 返回值类型为
DOUBLE。
- 如果所有输入值均为
NULL,则返回 NULL。
使用示例
- 计算包含重复值的集合方差:
SELECT VAR_POP(col) FROM VALUES (1), (2), (3), (3), (NULL) AS tab(col);
+----------------+
| `VAR_POP`(col) |
+----------------+
| 0.6875 |
+----------------+
- 计算去重之后的集合方差:
SELECT VAR_POP(DISTINCT col) FROM VALUES (1), (2), (3), (3), (NULL) AS tab(col);
+-------------------------+
| `VAR_POP`(DISTINCT col) |
+-------------------------+
| 0.6666666666666666 |
+-------------------------+
- 使用 FILTER 子句条件性地计算总体方差:
SELECT VAR_POP(col) FILTER (WHERE col > 1) FROM VALUES (1), (2), (3), (4) AS tab(col);
+-------------------------------------------+
| `VAR_POP`(col) FILTER (WHERE (col > 1)) |
+-------------------------------------------+
| 0.6666666666666666 |
+-------------------------------------------+
- 结合 FILTER 子句和 DISTINCT 计算条件总体方差:
SELECT VAR_POP(DISTINCT col) FILTER (WHERE col <= 3) FROM VALUES (1), (2), (3), (3), (4) AS tab(col);
+--------------------------------------------------------+
| `VAR_POP`(DISTINCT col) FILTER (WHERE (col <= 3)) |
+--------------------------------------------------------+
| 0.6666666666666666 |
+--------------------------------------------------------+