- 类别:
聚合函数 (通用)、 窗口函数的语法和用法 (通用)
VAR_POP¶
返回组中非 NULL 记录的总体方差。如果组内的所有记录都是 NULL,则返回 NULL。
- 别名:
语法¶
聚合函数
VAR_POP( [ DISTINCT ] <expr1> )
窗口函数
VAR_POP( [ DISTINCT ] <expr1> ) OVER (
[ PARTITION BY <expr2> ]
[ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
)
有关 window_frame
语法的详细信息,请参阅 窗口函数的语法和用法。
实参¶
expr1
expr1
的计算结果应为其中一种数值数据类型。expr2
这是用于划分分区的可选表达式。
expr3
这是每个分区中作为排序规则的可选表达式。
返回¶
返回值的数据类型是 NUMBER(<precision>, <scale>)
。比例取决于正在处理的值。
使用说明¶
传递 VARCHAR 表达式时,此函数会将输入隐式转换为浮点值。如果无法执行转换,则会返回错误。
当此函数作为窗口函数调用,且其中的 OVER 子句包含 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);
查询表:
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 | +---+---------------+---------------+