日志服务 通用聚合函数

这篇说说腾讯云日志服务通用聚合函数的语法与示例,涵盖count、avg、sum等20余种函数,用于对日志字段执行计算并返回结果,需注意字符串必须用单引号包裹。 函数说明:列出arbitrary、avg、max等聚合函数的语句、说明及示例,支持行数统计、条件判断、map操作等。 参数说明:KEY为开启统计的日志字段,x/y为任意数据类型,n为大于0的整数。

相关产品
日志服务 产品页,含版本规格、价格与购买入口。

这篇说说通用聚合函数的基本语法和示例。

一、函数说明

聚合函数是对一组值执行计算并返回计算结果的函数,日志服务支持如下聚合函数:

注意:说明:

注意:日志服务分析语句中,表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。例如:'status' 表示字符串 status,status 或 "status" 表示日志字段 status。

函数语句 说明 示例
arbitrary(KEY) 随机返回目标列中一个非 NULL 的值。 * | SELECT arbitrary(request_method) AS request_method
avg(KEY) 计算目标列的算术平均值。 * | SELECT AVG(request_time)
bitwise_and_agg(KEY) 返回目标列中所有值按位与运算(AND)的结果。 * | SELECT bitwise_and_agg(status)
bitwise_or_agg(KEY) 返回目标列中所有值按位或运算(OR)的结果。 * | SELECT bitwise_or_agg(request_length)
checksum(KEY) 计算目标列的校验和值,返回结果为二进制字符串。 * | SELECT checksum(request_method) AS request_method
count(*) 表示所有的行数。 * | SELECT COUNT(*) WHERE http_status >200
count(1) COUNT(1) 等同于 COUNT(*),表示所有的行数。 * | SELECT COUNT(1)
count(KEY) 计算某一 KEY 列非 NULL 的行数。 * | SELECT COUNT(request_time) WHERE request_time >5.0
count_if(boolean) 统计满足指定条件的日志条数。 * | select count_if(returnCode>=400) as errorCounts
geometric_mean(KEY) 计算 KEY 的几何平均数,KEY 不允许包含负数,否则结果为 NaN。 * | SELECT geometric_mean(request_time) AS request_time
max(KEY) 查询 KEY 中的最大值。 * | SELECT MAX(request_time) AS max_request_time
max_by(x,y) 返回 y 为最大值时对应的 x 值。 * | SELECT MAX_BY(request_method, request_time) AS method
max_by(x,y,n) 返回最大的 n 个 y 值对应的 x 值,返回结果为 JSON 数组。 * | SELECT max_by(request_method, request_time, 3) AS method
min(KEY) 查询 KEY 中最小值。 * | SELECT MIN(request_time) AS min_request_time
min_by(x,y) 返回 y 为最小值时对应的 x 值。 * | SELECT min_by(request_method, request_time) AS method
min_by(x,y,n) 返回最小的 n 个 y 值对应的 x 值。返回结果为 JSON 数组。 * | SELECT min_by(request_method, request_time, 3) AS method
sum(KEY) 计算 KEY 的总值。 * | SELECT SUM(body_bytes_sent) AS sum_bytes
bool_and(boolean) 是否所有的日志都满足指定的条件,如果是则返回 TRUE,否则返回 FALSE。 * | select bool_and(returnCode>=400)
bool_or(boolean) 是否有任意一条日志满足指定的条件,如果是则返回 TRUE,否则返回 FALSE。 * | select bool_or(returnCode>=400)
every(boolean) 等效于 bool_and(boolean)。 * | select every(returnCode>=400)
histogram(KEY) 返回一个 map,其中包含每个输入值出现次数的计数。 * | SELECT histogram(http_code)
map_agg(KEY, VALUE)  返回一个由输入的 key / value 对创建的 map。 * | SELECT map_agg(host,http_code)
map_union(KEY) 返回所有输入映射的并集。如果某个键在多个输入映射中出现,则结果映射中该键的值来自任意一个输入映射。 * | SELECT map_union(m) FROM (VALUES (map(array['a','b'], array[1,2])), (map(array['b','c'], array[20,3]))) t(m)
multimap_agg(KEY, VALUE)  返回一个由输入的 key / value 对创建的多重映射。每个键可以与多个值关联。 * | SELECT multimap_agg(host,http_code)

二、参数说明

参数 说明
KEY 索引配置-键值索引 中开启统计的日志字段名称,也可以是多个数值字段的四则运算结果或嵌套子查询的查询结果。
x 参数值为任意数据类型。
y 参数值为任意数据类型。
n 大于0的整数。
赞 (0)
上一篇 4天前
下一篇 4天前