类别:

聚合函数 (通用)、 窗口函数 (通用、窗口框架)

VAR_POP

返回组中非 NULL 记录的总体方差。如果组内的所有记录都是 NULL,则返回 NULL。

别名:

VARIANCE_POP

语法

聚合函数

VAR_POP( [ DISTINCT ] <expr1> )
Copy

窗口函数

VAR_POP( [ DISTINCT ] <expr1> ) OVER (
                                     [ PARTITION BY <expr2> ]
                                     [ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
                                     )
Copy

有关 window_frame 语法的详细信息,请参阅 窗口框架语法和用法

实参

expr1

expr1 的计算结果应为其中一种数值数据类型。

expr2

这是用于划分分区的可选表达式。

expr3

这是每个分区中作为排序规则的可选表达式。

返回

返回值的数据类型是 NUMBER(<precision>, <scale>)。比例取决于正在处理的值。

使用说明

  • 传递 VARCHAR 表达式时,此函数会将输入隐式转换为浮点值。如果无法执行转换,则会返回错误。

  • 当此函数作为窗口函数调用时(即带有 OVER 子句):

    • 如果 OVER 子句包含 ORDER BY 分子句,则:

      • 需要窗口框架。如果未明确指定窗口框架,则 ORDER BY 默认为累积窗口框架:

        RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

        有关窗口框架的信息(包括语法和示例),请参阅 窗口框架语法和用法

        有关隐含窗口框架的信息,另请参阅 窗口框架使用说明

      • 禁止在窗口函数中使用关键字 DISTINCT,否则会导致编译时错误。

示例

此示例演示如何使用 VAR_POP 函数:

创建并填写表:

create table aggr(k int, v decimal(10,2), v2 decimal(10, 2));
insert into aggr values 
   (1, 10, null),
   (2, 10, 11), 
   (2, 20, 22), 
   (2, 25, null), 
   (2, 30, 35);
Copy

查询表,调用 VAR_POP():

SELECT k, var_pop(v), var_pop(v2) 
    FROM aggr 
    GROUP BY k
    ORDER BY k;
+---+---------------+---------------+
| K |    VAR_POP(V) |   VAR_POP(V2) |
|---+---------------+---------------|
| 1 |  0.0000000000 |          NULL |
| 2 | 54.6875000000 | 96.2222222222 |
+---+---------------+---------------+
Copy
语言: 中文