- 类别:
聚合函数 (通用)、 窗口函数的语法和用法 (通用)
STDDEV_POP¶
返回非 NULL 值的总体标准差(方差的平方根)。
另请参阅 STDDEV,它返回样本标准差(方差的平方根)。
语法¶
聚合函数
窗口函数
有关 window_frame 语法的详细信息,请参阅 窗口函数的语法和用法。
实参¶
expr1计算结果为数值的表达式。这是计算标准偏差的表达式。
expr2这是用于划分分区的可选表达式。
expr3这是每个分区中作为排序规则的可选表达式。
返回¶
返回值的数据类型是 DOUBLE。
如果组内的所有记录都是 NULL,则此函数返回 NULL。
使用说明¶
传递 VARCHAR 表达式时,此函数会将输入隐式转换为浮点值。如果无法执行转换,则会返回错误。
当此函数作为窗口函数调用且 OVER 子句包含 ORDER BY 子句时:
DISTINCT 关键字被禁止,并导致 SQL 编译错误。
必须指定窗口框架。如果未指定窗口框架,则使用以下隐式窗口框架:
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW有关窗口框架的更多信息(包括语法、使用说明和示例),请参阅 窗口函数的语法和用法。
聚合函数示例¶
以下示例计算少量整数的标准差:
请注意,函数 STDDEV 和 STDDEV_SAMP 返回不同于 STDDEV_POP 的结果。
以下示例假设您有一张名为 menu 的表,其中列出了咖啡馆中待售的食品项目。以下输出显示了表中属于 Dessert 类别的 6 行。其他类别也存在于其他行,例如 Main 和 Beverage。
要查找销售商品成本和售价的总体标准差(仅限 Dessert 行),请运行以下查询:
窗口函数示例¶
以下示例使用相同的 menu 表,但将 STDDEV_POP 函数作为窗口函数来运行。
窗口函数按 item_category 列对行进行分区。因此,对每个项目类别计算一次标准差,并在组内每行的结果中重复该值。在此示例中,必须按项目类别和销售商品成本对行进行分组。(请注意,该 6 个 Dessert 行现在组合为 5 行,因为其中两行具有相同的商品成本价值。)