文档文档

SQL 聚合函数

SQL 聚合函数会为每个组或 SQL 分区聚合指定列中的值,并为每个组返回一个包含聚合值的单行。


通用聚合函数

array_agg

从表达式元素创建数组。

array_agg 返回 LIST Arrow 类型。使用方括号表示法引用返回数组中元素的索引。数组是从 1 开始索引的。

array_agg(expression)

参数

  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 array_agg 查询示例

avg

返回指定列中数值的平均值。

avg(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。
别名
  • mean

查看 avg 查询示例

bit_and

计算所有非空输入值的按位 AND

bit_and(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 bit_and 查询示例

bit_or

计算所有非空输入值的按位 OR。

bit_or(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 bit_or 查询示例

bit_xor

计算所有非空输入值的按位异或。

bit_xor(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 bit_xor 查询示例

bool_and

如果所有非空输入值均为 true,则返回 true,否则返回 false

bool_and(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 bool_and 查询示例

bool_or

如果任何非空输入值为 true,则返回 true,否则返回 false

bool_or(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 bool_or 查询示例

count

返回指定列中的行数。

Count 包括 null 值在内的总计数。要从总计数中排除 null 值,请在 WHERE 子句中包含 <column> IS NOT NULL

count(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 count 查询示例

first_value

根据指定的排序返回聚合组中的第一个元素。如果没有指定排序,则返回组中的任意元素。

first_value(expression [ORDER BY expression])
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 first_value 查询示例

grouping

如果数据跨指定列进行聚合,则返回 1;如果未在结果集中进行聚合,则返回 0。

grouping(expression)
参数
  • expression:用于评估数据是否跨指定列进行聚合的表达式。可以是常量、列或函数。

查看 grouping 查询示例

last_value

根据指定的排序返回聚合组中的最后一个元素。如果没有指定排序,则返回组中的任意元素。

last_value(expression [ORDER BY expression])
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 last_value 查询示例

max

返回指定列中的最大值。

max(expression)

要同时返回最大值及其关联的时间戳,请使用 selector_max

参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 max 查询示例

mean

avg 的别名。

median

返回指定列中的中位数。

median(expression)

参数

  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 median 查询示例

min

返回指定列中的最小值。

min(expression)

要同时返回最小值及其关联的时间戳,请使用 selector_max

参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 min 查询示例

nth_value

返回一组值中的第 n 个值。

nth_value(expression, n [ORDER BY order_expression_1, ... order_expression_n])
参数
  • expression:从中检索第 n 个值的列或表达式。
  • n:要检索的值的位置(第 n 个),基于排序。
  • order_expression_1, … order_expression_n:用于排序的表达式。可以是列或函数,以及任意算术运算符的组合。

查看 nth_value 查询示例

string_agg

连接字符串表达式的值,并在它们之间放置分隔符。

string_agg(expression, delimiter)
参数
  • expression:要连接的字符串表达式。可以是列或任何有效的字符串表达式。
  • delimiter:用作连接值之间分隔符的文字字符串。

查看 string_agg 查询示例

sum

返回指定列中所有值的总和。

sum(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 sum 查询示例

统计聚合函数

corr

返回两个数值之间的相关系数。

corr(expression1, expression2)
参数
  • expression1:要操作的第一个列或文字值。
  • expression2:要操作的第二个列或文字值。

查看 corr 查询示例

covar

返回一组数值对的协方差。

covar(expression1, expression2)
参数
  • expression1:要操作的第一个列或文字值。
  • expression2:要操作的第二个列或文字值。

查看 covar 查询示例

covar_pop

返回一组数值对的总体协方差。

covar_pop(expression1, expression2)
参数
  • expression1:要操作的第一个列或文字值。
  • expression2:要操作的第二个列或文字值。

查看 covar_pop 查询示例

covar_samp

返回一组数值对的样本协方差。

covar_samp(expression1, expression2)
参数
  • expression1:要操作的第一个列或文字值。
  • expression2:要操作的第二个列或文字值。

查看 covar_samp 查询示例

regr_avgx

计算非空因变量 expression_y 的自变量(输入)expression_x 的平均值。

regr_avgx(expression_y, expression_x)
参数
  • expression_y:因变量。可以是常量、列或函数,以及任意算术运算符的组合。
  • expression_x:自变量。可以是常量、列或函数,以及任意算术运算符的组合。

查看 regr_avgx 查询示例

regr_avgy

计算非空因变量 expression_y 的因变量(输出)expression_y 的平均值。

regr_avgy(expression_y, expression_x)
参数
  • expression_y:因变量。可以是常量、列或函数,以及任意算术运算符的组合。
  • expression_x:自变量。可以是常量、列或函数,以及任意算术运算符的组合。

查看 regr_avgy 查询示例

regr_count

计算非空配对数据的数量。

regr_count(expression_y, expression_x)
参数
  • expression_y:因变量。可以是常量、列或函数,以及任意算术运算符的组合。
  • expression_x:自变量。可以是常量、列或函数,以及任意算术运算符的组合。

查看 regr_count 查询示例

regr_intercept

计算线性回归线的 y 截距。对于方程 (y = kx + b),此函数返回 b

regr_intercept(expression_y, expression_x)
参数
  • expression_y:因变量。可以是常量、列或函数,以及任意算术运算符的组合。
  • expression_x:自变量。可以是常量、列或函数,以及任意算术运算符的组合。

查看 regr_intercept 查询示例

regr_r2

计算自变量和因变量之间的相关系数的平方。

regr_r2(expression_y, expression_x)
参数
  • expression_y:因变量。可以是常量、列或函数,以及任意算术运算符的组合。
  • expression_x:自变量。可以是常量、列或函数,以及任意算术运算符的组合。

查看 regr_r2 查询示例

regr_slope

返回聚合列中非空对的线性回归线的斜率。给定输入列 YXregr_slope(Y, X) 使用最小 RSS 拟合返回斜率(Y = k*X + b 中的 k)。

regr_slope(expression_y, expression_x)
参数
  • expression_y:要操作的 Y 表达式。可以是常量、列或函数,以及任意算术运算符的组合。
  • expression_x:要操作的 X 表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 regr_slope 查询示例

regr_sxx

计算自变量的平方和。

regr_sxx(expression_y, expression_x)
参数
  • expression_y:因变量。可以是常量、列或函数,以及任意算术运算符的组合。
  • expression_x:自变量。可以是常量、列或函数,以及任意算术运算符的组合。

查看 regr_sxx 查询示例

regr_syy

计算因变量的平方和。

regr_syy(expression_y, expression_x)
参数
  • expression_y:因变量。可以是常量、列或函数,以及任意算术运算符的组合。
  • expression_x:自变量。可以是常量、列或函数,以及任意算术运算符的组合。

查看 regr_syy 查询示例

regr_sxy

计算配对数据点的乘积和。

regr_sxy(expression_y, expression_x)

参数

  • expression_y:因变量。可以是常量、列或函数,以及任意算术运算符的组合。
  • expression_x:自变量。可以是常量、列或函数,以及任意算术运算符的组合。

查看 regr_sxy 查询示例

stddev

返回一组数字的标准差。

stddev(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 stddev 查询示例

stddev_pop

返回一组数字的总体标准差。

stddev_pop(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 stddev_pop 查询示例

stddev_samp

返回一组数字的样本标准差。

stddev_samp(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 stddev_samp 查询示例

var

返回一组数字的统计方差。

var(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 var 查询示例

var_pop

返回一组数字的统计总体方差。

var_pop(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。
别名
  • var_population

查看 var_pop 查询示例

var_population

var_pop 的别名。

var_samp

返回一组数字的统计样本方差。

var_samp(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。
别名
  • var_sample

查看 var_samp 查询示例

var_sample

var_samp 的别名。

近似聚合函数

approx_distinct

使用 HyperLogLog 算法计算不同输入值的近似数量。

approx_distinct(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 approx_distinct 查询示例

approx_median

返回输入值的近似中位数(第 50 百分位数)。它是 approx_percentile_cont(0.5) WITHIN GROUP (ORDER BY expression) 的别名。

approx_median(expression)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

查看 approx_median 查询示例

approx_percentile_cont

使用 t-digest 算法返回输入值的近似百分比。

approx_percentile_cont(percentile [, centroids]) WITHIN GROUP (ORDER BY expression)
-- OR
approx_percentile_cont(expression, percentile, centroids)
参数
  • percentile:要计算的百分比。必须是介于 0 和 1(含)之间的浮点值。

  • centroids:t-digest 算法中要使用的质心数量。默认值为 100。较高的数值会提高近似精度,但需要更多内存。

  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。

    如果唯一值的数量等于或少于此数量,则可以预期获得精确结果。质心数量越多,近似越精确,但计算所需的内存也越多。

查看 approx_percentile_cont 查询示例

approx_percentile_cont_with_weight

使用 t-digest 算法返回输入值的加权近似百分比。

approx_percentile_cont_with_weight(weight, percentile [, centroids]) WITHIN GROUP (ORDER BY expression)
-- OR
approx_percentile_cont_with_weight(expression, weight, percentile)
参数
  • expression:要操作的表达式。可以是常量、列或函数,以及任意算术运算符的组合。
  • weight:要用作权重的表达式。可以是常量、列或函数,以及任意算术运算符的组合。
  • percentile:要计算的百分比。必须是介于 0 和 1(含)之间的浮点值。
  • centroids:t-digest 算法中要使用的质心数量。默认值为 100。较高的数值会提高近似精度,但需要更多内存。

查看 approx_percentile_cont_with_weight 查询示例


此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2