聚合函數
更新時間 2025-07-07 18:26:18
最近更新時間: 2025-07-07 18:26:18
分享文章
聚合函數是對日志的指定列進行的統計運算。聚合函數返回的是單個值,常與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 |