SQL聚合函数
聚合函数是对结构化后的日志的指定列进行的统计运算。聚合函数返回的是单个值,经常与SELECT语句和GROUP BY语句一起使用。LTS支持如下表格所示聚合函数,具体请参考表1。
在聚合函数的使用中请注意以下几点:
- 聚合函数可用在任何查询的SELECT子句中。您可以使用如AGG(expr) FILTER(WHERE whereExpr)的语法在聚合之前进行过滤,即聚合函数只会聚合满足过滤条件的列。
- 在同一个SQL查询语句中,根据过滤条件的不同,对应的聚合函数所呈现的结果会不同。
- 只有COUNT函数可以跟DISTINCT搭配使用。
- 聚合操作没有固定的执行顺序。如果在执行具有多个聚合函数的SQL语句查询时,执行聚合函数的顺序对运算结果有影响,即结果会因执行顺序的不同而不同,那么每次执行这个查询,得出的结果可能会不一致。
- 如果需要聚合的数据为FLOAT类型时,数次执行同一个查询可能也会因此得出不同的聚合结果。如果您希望执行同一个查询时都能得出同样的结果,建议使用ROUND函数来消除多次查询之间的不一致。
语法格式
SELECT COUNT(fieldname1)
聚合函数语句
语句 |
说明 |
示例 |
---|---|---|
COUNT(*) |
统计行数。 |
SELECT COUNT(*) |
COUNT(DISTINCT expr) |
统计字段中去重后的行数,字段值可以是字符串或者数字,返回值为估算值(默认存在2.3%的标准误差)。 |
SELECT COUNT(DISTINCT host) |
SUM(expr) |
返回数字总和。 |
SELECT SUM(visitCount) |
MIN(expr) |
返回数字中的最小值。 |
SELECT MIN(visitCount) |
MAX(expr) |
返回数字中的最大值。 |
SELECT MAX(visitCount) |
AVG(expr) |
返回平均值。 |
SELECT AVG(visitCount) |
EARLIEST(expr) |
表达式必须是数值类型的, 返回expr的最早的值, 即查询的时候最先遇到的值。 |
SELECT EARLIEST(visitCount) |
LATEST(expr) |
表达式必须是数值类型的, 返回expr的最新的值, 即查询的时候最后遇到的值。 |
SELECT LATEST(visitCount) |
APPROX_QUANTILE_DS(expr, probability) |
计算数值expr的近似分位数,probability应介于0和1之间。 |
APPROX_QUANTILE_DS(expr, probability) |