STD
std([DISTINCT] expr)
功能描述
STD
STD
函数是
STDDEV_SAMP
STDDEV_SAMP
的别名,用于计算一组数值数据的样本标准差。标准差是衡量数据分散程度的统计指标,用于表示数据集中数值的离散程度。
参数说明
expr
expr
:数值类型的列或表达式,可以是 TINYINT
TINYINT
、SMALLINT
SMALLINT
、INT
INT
、BIGINT
BIGINT
、FLOAT
FLOAT
、DOUBLE
DOUBLE
或 DECIMAL
DECIMAL
类型。
DISTINCT
DISTINCT
:可选参数,当设置为 DISTINCT
DISTINCT
时,函数将计算去重后的集合的标准差。如果未设置 DISTINCT
DISTINCT
,则计算包含重复值的集合的标准差。
返回类型
- 返回
DOUBLE
DOUBLE
类型的数值,表示数据集的样本标准差。
注意事项
- 如果输入的数据集包含
NULL
NULL
值,NULL
NULL
值将不参与计算。
STD
STD
函数与 STDDEV_SAMP
STDDEV_SAMP
函数完全相同,可以互换使用。
使用示例
- 基本使用
SELECT std(col) FROM VALUES (1), (2), (3), (3), (NULL) AS tab(col);
+--------------------+
| `std`(col) |
+--------------------+
| 0.9574271077563381 |
+--------------------+
- 使用 DISTINCT 关键字
SELECT std(DISTINCT col) FROM VALUES (1), (2), (3), (3), (NULL) AS tab(col);
+----------------------+
| `std`(DISTINCT col) |
+----------------------+
| 1 |
+----------------------+
- 使用 FILTER 子句条件性地计算标准差
SELECT std(col) FILTER (WHERE col > 1) FROM VALUES (1), (2), (3), (4) AS tab(col);
+----------------------------------+
| std(col) FILTER (WHERE col > 1) |
+----------------------------------+
| 1 |
+----------------------------------+
- 按分组计算标准差
SELECT c, std(col)
FROM VALUES ('a', 1), ('a', 2), ('a', 3), ('b', 10), ('b', 20) AS tab(c, col)
GROUP BY c;
+---+--------------------+
| c | std(col) |
+---+--------------------+
| a | 1 |
| b | 7.0710678118654755 |
+---+--------------------+