聚合函数
聚合函数是数据库中常用的函数,用于对数据进行聚合计算和汇总。它们接收一组值作为输入,并返回一个单一的聚合结果。聚合函数可以用于执行各种操作,例如计算总和、平均值、最大值、最小值等。
通用
avg
返回指定列中数值的平均值。
avg(expression)
参数 | 描述 |
---|---|
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 avg
示例
count
返回指定列中的行数。
count(expression)
参数 | 描述 |
---|---|
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 count
示例
count下推
仅当sql句式为 “SELECT count(*) FROM table_name; 或 SELECT count(field) FROM table_name;” 时,会将count下推到tskv层,通过读取底层文件统计信息获取行数,避免了实际数据读取,提升效率。
但是可能会有重复时间戳数据导致比实际行数多,为此增加了不会下推的exact_count,注意:exact_count只能用于替换上述句式,在其他句式使用可能会报错。
查看 count下推
示例
max
返回指定列中的行数。
max(expression)
参数 | 描述 |
---|---|
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 max
示例
mean
avg
的别名。
median
返回指定列中的中值。
median(expression)
参数 | 描述 |
---|---|
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 median
示例
min
返回指定列中的最小值。
min(expression)
参数 | 描述 |
---|---|
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 min
示例
sum
返回指定列中所有值的总和。
sum(expression)
参数 | 描述 |
---|---|
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 sum
示例
array_agg
返回从表达式元素创建的数组。如果给出了排序要求,则按所需排序的顺序插入元素。
array_agg(expression [ORDER BY expression])
参数 | 描述 |
---|---|
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 array_agg
示例
first_value
根据请求的顺序返回聚合组中的第一个元素。如果未给出排序,则从组中返回任意元素。
first_value(expression [ORDER BY expression])
参数 | 描述 |
---|---|
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 first_value
示例
first
返回按时间排序的第一条记录。
first(time_expression, expression)
参数 | 描述 |
---|---|
time_expression | 必需为 time 列。 |
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 first
示例
last_value
根据请求的顺序返回聚合组中的第一个元素。如果未给出排序,则从组中返回任意元素。
last_value(expression [ORDER BY expression])
参数 | 描述 |
---|---|
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 last_value
示例
last
返回按时间排序的最后一条记录。
last(expression_x, expression_y)
参数 | 描述 |
---|---|
time_expression | 必需为 time 列。 |
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 last
示例
mode
计算一组数据中出现频率最高的值。
mode(expression)
参数 | 描述 |
---|---|
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 mode
示例
increase
计算范围向量中时间序列的增量,类似 Prometheus 中的 increase 函数。
increase(time_expression, expression ORDER BY time_expression)
参数 | 描述 |
---|---|
time_expression | 必需为 time 列。 |
expression | 要对其进行操作的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 mode
示例
统计
corr
计算两个列之间的皮尔逊相关系数,这是衡量两个变量线性相关程度的一种方法。皮尔逊相关系数的值介于 -1 和 1 之间,其中 1 表示完全正相关,-1 表示完全负相关,0 表示没有线性相关。
corr(expression1, expression2)
参数 | 描述 |
---|---|
expression1 | 要操作的第一个表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
expression1 | 要操作的第二个表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 corr
示例
covar
返回一组数字对的协方差。
covar(expression1, expression2)
参数 | 描述 |
---|---|
expression1 | 要操作的第一个表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
expression1 | 要操作的第二个表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 covar
示例
covar_pop
返回一组数字对的总体协方差。
covar_pop(expression1, expression2)
参数 | 描述 |
---|---|
expression1 | 要操作的第一个表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
expression1 | 要操作的第二个表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 covar_pop
示例
covar_samp
返回一组数对的样本协方差。
covar_samp(expression1, expression2)
参数 | 描述 |
---|---|
expression1 | 要操作的第一个表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
expression1 | 要操作的第二个表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
查看 covar_samp
示例
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_pop
示例
var_samp
返回一组数字的统计样本方差。
var_samp(expression)
参数 | 描述 |
---|---|
expression | 要操作的表达式。可以是常量、列或函数,以及算术运算符的任意组合 |
查看 var_samp
示例
近似
approx_distinct
返回使用 HyperLogLog 算法计算的不同输入值的近似数量。
approx_distinct(expression)
参数 | 描述 |
---|---|
expression | 要操作的表达式。可以是常量、列或函数,以及算术运算符的任意组合 |
查看 approx_distinct
示例
approx_median
返回输入值的近似中位数(第 50 个百分位)。它是 approx_percentile_cont(x, 0.5)
的别名。
approx_median(expression)
参数 | 描述 |
---|---|
expression | 要操作的表达式。可以是常量、列或函数,以及算术运算符的任意组合 |
查看 approx_median
示例
approx_percentile_cont
使用 t-digest 算法返回输入值的近似百分位。
approx_percentile_cont(expression, percentile, centroids)
参数 | 描述 |
---|---|
expression | 要操作的表达式。可以是常量、列或函数,以及算术运算符的任意组合 |
percentile | 要计算的百分位数。必须是 0 到 1(含)之间的浮点值。 |
centroids | 可选,t-digest 算法中使用的质心数。默认值为 100。 |
如果存在此数字或更少的唯一值,则可以期待确切的结果。质心数量越多,近似值就越准确,但需要更多的内存来计算。
查看 approx_percentile_cont
示例
approx_percentile_cont_with_weight
使用t-digest算法返回输入值的加权近似百分位数。
approx_percentile_cont_with_weight(expression, weight, percentile)
参数 | 描述 |
---|---|
expression | 要操作的表达式。可以是常量、列或函数,以及算术运算符的任意组合 |
weight | 用作权重的表达式。可以是常量、列或函数,也可以是算术运算符的任意组合。 |
percentile | 要计算的百分位数。必须是介于 0 和 1(含)之间的浮点值。 |
如果存在此数字或更少的唯一值,则可以期待确切的结果。质心数量越多,近似值就越准确,但需要更多的内存来计算。
查看 approx_percentile_cont_with_weight
示例
sample
从给定的列中随机选择 n 条记录。
sample(expression, n)
参数 | 描述 |
---|---|
expression | 要操作的表达式。必需是表中的某一列。 |
n | 要返回的记录数量。 |
查看 sample
示例
- 社区版
- 企业版
asap_smooth
asap_smooth
函数用于时间序列数据的平滑处理,ASAP(As Smooth As Possible)平滑算法旨在快速平滑时间序列数据,同时保持数据中的关键趋势和模式,使得数据的可视化更加清晰,而不会因过度平滑而丢失重要信息。
asap_smooth(time, value, resolution ORDER BY time)
参数 | 描述 |
---|---|
time | 每个数据点的时间戳。 |
value | 每个时间戳的值。 |
resolution | 要返回的大概点数。确定结果图的水平分辨率。 |