
1. SQL中提供了STDDEV、STDDEV_SAMP和STDDEV_POP这三个用于计算数据集标准差的聚合函数。
2. 除非指定表达式的数据类型为DOUBLE,否则这些函数默认返回数值数据类型的结果。
3. 这些函数在忽略NULL值的情况下,计算出表达式值分布的统计标准差。
4. 标准差是一个正值,它表示数据集值的变化程度。
5. STDDEV、STDDEV_SAMP和STDDEV_POP函数是从相应的方差函数衍生而来,其中STDDEV_SAMP基于样本方差,STDDEV_POP基于总体方差。
6. 这些函数可以在对表或视图的SELECT查询中使用,也可以在子查询中。
7. 标准差函数可以出现在SELECT语句或HAVING子句中,但不能用在WHERE子句中。
8. 这些函数不能用于JOIN的ON子句,除非SELECT是子查询。
9. 标准差函数返回的数据类型是NUMERIC,精度为36,刻度为17,除非表达式是DOUBLE类型。
10. 这些函数通常用于处理数值字段,将非数值值(包括空字符串)视为0。
11. 这些函数在计算时会忽略字段中的NULL值。
12. 如果查询没有返回行或者所有返回行的字段值为NULL,则函数返回NULL。
13. 标准差函数可以包含一个可选的DISTINCT子句,用于计算唯一值的标准差。
14. STDDEV(DISTINCT col1)返回不同col1值的标准差,而STDDEV(DISTINCT BY(col2) col1)返回根据col2的不同值计算col1的标准差。
15. 请注意,即使col2值中有NULL值,上述函数也会考虑。
16. 标准差函数反映的是数据的当前状态,包括未提交的更改,不受当前事务隔离级别的影响。
17. 示例中,使用STDDEV函数返回员工年龄的标准差,以及使用STDDEV_POP函数返回员工年龄的总体标准差。