Documentation

SQL 聚合函数

InfluxDB 3核心正在进行公开测试

InfluxDB 3 Core 正在进行公开 alpha 测试,并可供测试和反馈,但不适合用于生产环境。产品和本文件都是进行中的工作。我们欢迎并鼓励您分享您对 alpha 版本的体验,并邀请您加入我们的公共频道以获取更新和分享反馈。

阿尔法预期和建议

SQL 聚合函数对每个组或 SQL 分区中特定列的值进行聚合,并返回每个组的单行,其中包含聚合值。


通用聚合函数

数组聚合

返回一个由表达式元素创建的数组。

array_agg 返回一个 LIST 箭头类型,这是 InfluxDB 不支持的。 要在 InfluxDB 中使用,请使用括号表示法引用返回数组中元素的索引。 数组是从 1 开始计数的。

array_agg(expression)

参数

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

查看 array_agg 查询示例

平均值

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

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

查看 avg 查询示例

位与

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

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

查看 bit_and 查询示例

位或

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

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

查看 bit_or 查询示例

位异或

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

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

查看 bit_xor 查询示例

布尔与

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

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

查看 bool_and 查询示例

布尔或

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

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

查看 bool_or 查询示例

计数

返回指定列中的行数。

计数包括 null 值在总计数中。
要从总计数中排除 null 值,请在 WHERE 子句中包含 IS NOT NULL

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

查看 count 查询示例

首个值

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

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

查看 first_value 查询示例

最后一个值

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

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

查看 last_value 查询示例

最大值

返回指定列中的最大值。

max(expression)

要返回最大值及其相关时间戳,请使用 selector_max.

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

查看 max 查询示例

均值

avg 的别名。

中位数

返回指定列中的中位数值。

median(expression)

参数

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

查看 median 查询示例

最小值

返回指定列中的最小值。

min(expression)

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

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

查看 min 查询示例

总和

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

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

查看 sum 查询示例

统计汇总函数

相关性

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

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

查看 corr 查询示例

协方差

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

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

查看 covar 查询示例

总体协方差

返回一组数字对的种群协方差。

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

查看 covar_pop 查询示例

样本协方差

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

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

查看 covar_samp 查询示例

回归平均值

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

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

查看 regr_avgx 查询示例

平均回归

计算依赖变量(输出)expression_y 的平均值,针对非空的依赖变量expression_y

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

查看 regr_avgy 查询示例

回归计数

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

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

查看 regr_count 查询示例

回归截距

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

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

查看 regr_intercept 查询示例

回归R平方

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

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

查看 regr_r2 查询示例

回归斜率

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

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

查看 regr_slope 查询示例

回归平方和

计算自变量的平方和。

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

查看 regr_sxx 查询示例

回归_syy

计算因变量的平方和。

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

查看 regr_syy 查询示例

回归SXY

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

regr_sxy(expression_y, expression_x)

参数

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

查看 regr_sxy 查询示例

标准差

返回一组数字的标准差。

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

查看 stddev 查询示例

总体标准差

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

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

查看 stddev_pop 查询示例

样本标准差

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

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

查看 stddev_samp 查询示例

变量

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

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

查看 var 查询示例

方差

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

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

查看 var_pop 查询示例

方差样本

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

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

查看 var_samp 查询示例

近似汇总函数

近似唯一值

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

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

查看 approx_distinct 查询示例

近似中位数

返回输入值的近似中位数(第50百分位数)。它是 approx_percentile_cont(x, 0.5) 的别名。

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

查看 approx_median 查询示例

近似百分位数连续

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

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

  • percentile: 要计算的百分位数。必须是一个介于 0 和 1 之间(包括 0 和 1)的浮点值。

  • centroids: 要在 t-digest 算法中使用的中心点数量。 默认值为 100

    如果唯一值的数量等于或少于这个数字,您可以期待一个精确的结果。 更高数量的质心会导致更精确的近似,但 需要更多的内存来计算。

查看 approx_percentile_cont 查询示例

加权近似分位数连续

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

approx_percentile_cont_with_weight(expression, weight, percentile)
参数
  • expression: 要操作的表达式。 可以是常量、列或函数,以及任何算术运算符的组合。
  • weight: 用作权重的表达式。 可以是常量、列或函数,以及任何算术运算符的组合。
  • percentile: 需要计算的百分位数。必须是一个介于0和1之间(包含)的浮点值。

查看 approx_percentile_cont_with_weight 查询示例



Flux的未来

Flux 正在进入维护模式。您可以像现在一样继续使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看: