基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
VAR_SAMP
更新时间:2026-07-15 20:42:46
描述
该函数返回一组数值集合的样本方差(忽略 NULL)。可以将该函数用作聚合或分析函数。
说明
- 作为分析函数使用时,需要使用
OVER子句定义窗口进行计算。它对一组行的集合进行计算并返回多个值。 - 作为聚合函数使用时,该函数对一组行的集合进行聚合计算,结果只能返回一个值,此时不需要加
OVER子句。
语法
VAR_SAMP(expr) [ OVER (analytic_clause) ]
参数解释
| 参数 | 说明 |
|---|---|
| expr | 指定参与计算的数值表达式。属于数值数据类型或可以隐式转换为数值数据类型的值。 |
| OVER | 使用 OVER 子句定义窗口进行计算。详细信息请参见 分析函数说明。 |
说明
如果该函数应用于空集,则返回 NULL。返回结果计算公式为:(SUM(expr - (SUM(expr) / COUNT(expr)))²) /(COUNT(expr) - 1)。
返回类型
返回与参数 expr 相同的数据类型或 NULL。
示例
现有已创建表 tbl1。
obclient> SELECT * FROM tbl1;
+------+------+------+------+
| COL1 | COL2 | COL3 | COL4 |
+------+------+------+------+
| 1 | A1 | 8 | 12 |
| 1 | A2 | 10 | 15 |
| 1 | A3 | 11 | 16 |
| 2 | B1 | 9 | 14 |
| 2 | B2 | 10 | 15 |
| 2 | B3 | 8 | 13 |
| 2 | B4 | 11 | 16 |
| 3 | C1 | 8 | 18 |
| 3 | C2 | 9 | 16 |
| 3 | C3 | 10 | 15 |
| 3 | C4 | 11 | 12 |
| 3 | C5 | 12 | 10 |
| 4 | d1 | 8 | NULL |
| 4 | d1 | 9 | 10 |
| 4 | d1 | 10 | NULL |
+------+------+------+------+
15 rows in set
聚合函数示例
计算列 col4 的样本方差。
obclient> SELECT VAR_SAMP(col4) FROM tbl1;
+----------------+
| VAR_SAMP(COL4) |
+----------------+
| 6 |
+----------------+
1 row in set
分析函数示例
按列 col2 升序排序,计算列 col4 的累计样本方差。
obclient> SELECT col1,col2,col4,VAR_SAMP(col4) OVER(ORDER BY col2) "VAR_POP" FROM tbl1;
+------+------+------+------------------------------------------+
| COL1 | COL2 | COL4 | VAR_POP |
+------+------+------+------------------------------------------+
| 1 | A1 | 12 | NULL |
| 1 | A2 | 15 | 4.5 |
| 1 | A3 | 16 | 4.3333333333333333333333333333333333335 |
| 2 | B1 | 14 | 2.91666666666666666666666666666666666667 |
| 2 | B2 | 15 | 2.3 |
| 2 | B3 | 13 | 2.1666666666666666666666666666666666666 |
| 2 | B4 | 16 | 2.28571428571428571428571428571428571433 |
| 3 | C1 | 18 | 3.55357142857142857142857142857142857143 |
| 3 | C2 | 16 | 3.25 |
| 3 | C3 | 15 | 2.88888888888888888888888888888888888889 |
| 3 | C4 | 12 | 3.4181818181818181818181818181818181818 |
| 3 | C5 | 10 | 4.969696969696969696969696969696969697 |
| 4 | d1 | NULL | 6 |
| 4 | d1 | 10 | 6 |
| 4 | d1 | NULL | 6 |
+------+------+------+------------------------------------------+
15 rows in set