- 类别:
聚合函数 (通用)
SKEW¶
返回非 NULL 记录的样本偏度。如果组内的所有记录都是 NULL,则函数返回 NULL。
以下公式用于计算样本偏度:
\[(n^2)/((n-1) * (n-2)) * (m_3/(k_2)^(1.5))\]
其中:
\(n\) 表示非 Null 记录的数量。
\(m_3\) 表示样本第三中心矩。
\(k_2\) 表示方差的对称无偏估计量。
直观地说,偏度描述了基础分布的不对称程度。
语法¶
SKEW( <expr> )
实参¶
expr
这是一个计算结果为数值数据类型(INTEGER、FLOAT、DECIMAL 等)的表达式。
返回¶
此函数返回 DOUBLE 类型的值。
使用说明¶
对于少于 3 条记录的输入,SKEW 返回 NULL。
示例¶
创建表并加载数据:
create or replace table aggr(k int, v decimal(10,2), v2 decimal(10, 2)); insert into aggr values (1, 10, null), (2, 10, null), (2, 20, 22), (2, 25, null), (2, 30, 35);
显示数据:
select * from aggr order by k, v; +---+-------+-------+ | K | V | V2 | |---+-------+-------| | 1 | 10.00 | NULL | | 2 | 10.00 | NULL | | 2 | 20.00 | 22.00 | | 2 | 25.00 | NULL | | 2 | 30.00 | 35.00 | +---+-------+-------+
查询数据:
select SKEW(K), SKEW(V), SKEW(V2) from aggr; +--------------+---------------+----------+ | SKEW(K) | SKEW(V) | SKEW(V2) | |--------------+---------------+----------| | -2.236069766 | 0.05240788515 | NULL | +--------------+---------------+----------+