聚合函数是对日志的指定列进行的统计运算。聚合函数返回的是单个值,常与GROUP BY语句一起使用。本文介绍聚合函数的基本语法及示例。
函数列表
云日志服务支持如下表格所示聚合函数
函数名称 |
语法 | 说明 |
---|---|---|
arbitrary函数 | arbitrary(x) | 返回x中任意一个非空的值。 |
avg函数 | avg(x) | 计算x中的算术平均值。 |
count函数 | count(*)/count()/count(1)count(x) | 统计所有的日志条数。统计x中值不为NULL的日志条数。 |
max函数 | max(x) | 查询x中的最大值。 |
max_by函数 | max_by(x, y) | 查询y为最大值时对应的x值。 |
min函数 | min(x) | 查询x中最小值。 |
min_by函数 | min_by(x, y) | 查询y为最小值时对应的x值。 |
sum函数 | sum(x) | 计算x的总和。 |
skewness函数 | skewness(x) | 计算x的偏度。 |
kurtosis函数 | kurtosis(x) | 计算x的峰度。 |
count_if函数 | count_if(expr) | 统计满足指定条件的日志条数。 |
bit_and函数 | bit_and(x) | 返回x中所有值按位与运算的结果。 |
bit_or函数 | bit_or(x) | 返回x中所有值按位或运算的结果。 |
arbitrary函数
返回x中任意一个非空的值。
语法
arbitrary(x)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x |
原始字段 | 任意数据类型 | 是 |
返回值类型
与参数值的数据类型一致
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT arbitrary(hostName) |
返回结果 |
www.test-001.com |
avg函数
计算x中的算术平均值。
语法
avg(x)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x |
原始字段 |
数值类型 | 是 |
返回值类型
float类型
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT avg(latency) |
返回结果 |
2.13 |
count函数
统计所有的日志条数,或统计x中值不为NULL的日志条数。
语法
- 统计所有的日志条数
count()
count(1)
count(*)
- 统计x中值不为NULL的日志条数
count(x)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x |
原始字段 | 任意数据类型 | 否 |
返回值类型
integer类型
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT count(hostName) |
返回结果 |
1102325 |
max函数
查询x中的最大值。
语法
max(x)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x |
原始字段 |
任意数据类型 | 是 |
返回值类型
与参数值x的数据类型一致
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT max(latency) |
返回结果 |
89 |
max_by函数
查询y为最大值时对应的x值。
语法
max_by(x, y)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x |
原始字段 |
任意数据类型 | 是 |
y | 原始字段 |
任意数据类型 | 是 |
返回值类型
与参数值x的数据类型一致
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT max_by(hostName, latency) |
返回结果 |
www.test-023.com |
min函数
查询x中的最小值。
语法
min(x)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x |
原始字段 |
任意数据类型 | 是 |
返回值类型
与参数值x的数据类型一致
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT min(latency) |
返回结果 |
1.06 |
min_by函数
查询y为最小值时对应的x值。
语法
min_by(x, y)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x |
原始字段 |
任意数据类型 | 是 |
y | 原始字段 |
任意数据类型 | 是 |
返回值类型
与参数值x的数据类型一致
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT min_by(hostName, latency) |
返回结果 |
www.min-017.com |
sum函数
计算参数列的总和。
语法
sum(x)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x |
原始字段 |
数值类型 | 是 |
返回值类型
与参数值x的数据类型一致
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT sum(hit_count) |
返回结果 |
25976 |
skewness函数
计算参数x的偏度。
语法
skewness(x)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x |
原始字段 |
数值类型 | 是 |
返回值类型
float类型
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT skewness(latency) |
返回结果 |
5.501413 |
kurtosis函数
计算参数x的峰度。
语法
kurtosis(x)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x |
原始字段 |
数值类型 | 是 |
返回值类型
float类型
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT kurtosis(latency) |
返回结果 |
17.559493 |
count_if函数
统计满足指定条件的日志条数。
语法
count_if(expr)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
expr | 包含原始字段的boolean表达式 |
boolean类型 | 是 |
返回值类型
integer类型
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT count_if(latency>100) |
返回结果 |
236 |
bit_and函数
返回x中所有值按位与运算的结果。
语法
bit_and(x)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 原始字段 |
integer类型 | 是 |
返回值类型
integer类型
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT bit_and(latency) |
返回结果 |
0 |
bit_or函数
返回x中所有值按位或运算的结果。
语法
bit_or(x)
参数说明
参数名称 | 说明 | 类型 | 是否必选 |
---|---|---|---|
x | 原始字段 | integer类型 | 是 |
返回值类型
integer类型
示例
类型 |
示例 |
---|---|
统计分析语句 |
SELECT bit_or(latency) |
返回结果 |
28671 |