总体标准差(STDDEV_POP)

stddev_pop([DISTINCT] expr) [FILTER (WHERE condition)]

功能描述

STDDEV_POP 函数用于计算一组数值数据的总体标准差(Population Standard Deviation)。标准差是衡量数据分布离散程度的统计指标,用于表示数据集中的数值相对于平均值的偏离程度。

参数说明

  • expr: 需要计算标准差的数值类型数据,可以是 TINYINTSMALLINTINTBIGINTFLOATDOUBLEDECIMAL 类型。
  • DISTINCT: 可选参数,表示是否计算去重后的集合。若设置 DISTINCT,则函数只计算不重复数据的标准差。

返回结果

  • 返回一个 DOUBLE 类型的值,表示计算结果。
  • 如果所有输入值均为 NULL,则返回 NULL

使用示例

示例 1:计算一组数值数据的总体标准差

SELECT stddev_pop(col) FROM VALUES (1), (2), (3), (3), (NULL) AS tab(col);
+-------------------+
| `stddev_pop`(col) |
+-------------------+
| 0.82915619758885  |
+-------------------+

示例 2:计算去重后的数值数据的总体标准差

SELECT stddev_pop(DISTINCT col) FROM VALUES (1), (2), (3), (3), (NULL) AS tab(col);
+----------------------------+
| `stddev_pop`(DISTINCT col) |
+----------------------------+
| 0.816496580927726          |
+----------------------------+

示例 3:使用 FILTER 子句条件性地计算总体标准差

SELECT stddev_pop(col) FILTER (WHERE col > 1) FROM VALUES (1), (2), (3), (4) AS tab(col);
+----------------------------------------------+
| `stddev_pop`(col) FILTER (WHERE (col > 1))   |
+----------------------------------------------+
| 0.816496580927726                            |
+----------------------------------------------+

示例 4:结合 FILTER 子句和 DISTINCT 计算条件总体标准差

SELECT stddev_pop(DISTINCT col) FILTER (WHERE col <= 3) FROM VALUES (1), (2), (3), (3), (4) AS tab(col);
+-----------------------------------------------------------+
| `stddev_pop`(DISTINCT col) FILTER (WHERE (col <= 3))      |
+-----------------------------------------------------------+
| 0.816496580927726                                         |
+-----------------------------------------------------------+

通过以上示例,您可以根据实际需求灵活使用 STDDEV_POP 函数来计算数据集的总体标准差。

联系我们
预约咨询
微信咨询
电话咨询