聚合函数是对一组值执行计算并返回计算结果的函数,本文介绍通用聚合函数的基本语法及示例。

函数名称 说明 示例
arbitrary(KEY) 随机返回目标列中一个非NULL的值。 随机返回request_method列中的一个值。
* | SELECT arbitrary(request_method) AS request_method
avg(KEY) 计算目标列的算术平均值。 返回平均延迟时间高于1000微秒的Project,分析Project写入延迟情况。
method: PostLogstoreLogs | SELECT avg(latency) AS avg_latency, Project GROUP BY Project HAVING avg_latency > 1000
checksum(KEY) 计算目标列的校验和值,返回结果为BASE 64编码类型。 计算request_method列的校验和值。
* | SELECT checksum(request_method)

返回结果为D2UmTL3octI=

count(*) 统计所有的日志条数。 统计访问PV。
* | SELECT count(*) AS PV
count(KEY) 统计包含目标字段的日志条数(NULL不计数)。 统计包含request_method字段的日志条数。
* | SELECT count(request_method)
count(1) 统计所有的日志条数。等同于count(*) 统计访问PV。
* | SELECT count(1) AS PV
count_if(KEY) 统计满足指定条件的日志条数。 统计url字段值是以abc结尾的请求个数。
* | SELECT count_if(url like ‘%abc’) 
geometric_mean(KEY) 计算目标列的几何平均数。 计算请求时长的几何平均值。
* | SELECT geometric_mean(request_time)
max_by(KEY_01,KEY_02) 返回KEY_02为最大值时对应的KEY_01值。 返回最高消费对应的时间点。
* | SELECT max_by(UsageEndTime, PretaxAmount) as time
max_by(KEY_01,KEY_02,n) 返回KEY_02最大的n行对应的KEY_01值。

返回结果为JSON数组。

返回请求时长最大的3个请求对应的请求方法。
* | SELECT max_by(request_method,request_time,3)

返回结果为["GET","PUT","DELETE"]

min_by(KEY_01,KEY_02) 返回KEY_02为最小值时对应的KEY_01值。 返回最小请求时长的请求对应的请求方法。
* | SELECT min_by(request_method,request_time)
min_by(KEY_01,KEY_02,n) 返回KEY_02最小的n行对应的KEY_01值。

返回结果为JSON数组。

返回请求时长最小的3个请求对应的请求方法。
* | SELECT min_by(request_method,request_time,3)

返回结果为["GET","PUT","DELETE"]

max(KEY) 查询目标列的最大值。 查询请求时长的最大值。
* | SELECT max(request_time)
min(KEY) 查询目标列的最小值。 查询请求时长的最小值。
* | SELECT min(request_time)
sum(KEY) 计算目标列的总值。 计算每天的Nginx流量。
* | select date_trunc('day',__time__) AS time, sum(body_bytes_sent) AS body_bytes_sent GROUP BY time ORDER BY time
bitwise_and_agg(KEY) 返回目标列所有值按位与运算(AND)的结果。

返回结果为二进制补码格式。

request_time的所有值做二进制与运算。
* | SELECT bitwise_and_agg(request_time)
bitwise_or_agg(KEY) 返回目标列所有值按位或运算(OR)的结果。

返回结果为二进制补码格式。

request_time的所有值做二进制或运算。
* | SELECT bitwise_or_agg(request_time)