类别:

聚合函数 (通用)

SKEW

返回非 NULL 记录的样本偏度。如果组内的所有记录都是 NULL,则函数返回 NULL。

以下公式用于计算样本偏度:

\[(n^2)/((n-1) * (n-2)) * (m_3/(k_2)^(1.5))\]

其中:

  • \(n\) 表示非 Null 记录的数量。

  • \(m_3\) 表示样本第三中心矩。

  • \(k_2\) 表示方差的对称无偏估计量。

直观地说,偏度描述了基础分布的不对称程度。

语法

SKEW( <expr> )
Copy

实参

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);
Copy

显示数据:

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 |
+---+-------+-------+
Copy

查询数据:

select SKEW(K), SKEW(V), SKEW(V2) 
    from aggr;
+--------------+---------------+----------+
|      SKEW(K) |       SKEW(V) | SKEW(V2) |
|--------------+---------------+----------|
| -2.236069766 | 0.05240788515 |     NULL |
+--------------+---------------+----------+
Copy
语言: 中文