更新时间:2024-09-19 GMT+08:00

SQL聚合函数

聚合函数是对结构化后的日志的指定列进行的统计运算。聚合函数返回的是单个值,经常与SELECT语句和GROUP BY语句一起使用。LTS支持如下表格所示聚合函数,具体请参考表1

在聚合函数的使用中请注意以下几点:

  • 聚合函数可用在任何查询的SELECT子句中。您可以使用如AGG(expr) FILTER(WHERE whereExpr)的语法在聚合之前进行过滤,即聚合函数只会聚合满足过滤条件的列。
  • 在同一个SQL查询语句中,根据过滤条件的不同,对应的聚合函数所呈现的结果会不同。
  • 只有COUNT函数可以跟DISTINCT搭配使用。
  • 聚合操作没有固定的执行顺序。如果在执行具有多个聚合函数的SQL语句查询时,执行聚合函数的顺序对运算结果有影响,即结果会因执行顺序的不同而不同,那么每次执行这个查询,得出的结果可能会不一致。
  • 如果需要聚合的数据为FLOAT类型时,数次执行同一个查询可能也会因此得出不同的聚合结果。如果您希望执行同一个查询时都能得出同样的结果,建议使用ROUND函数来消除多次查询之间的不一致。

语法格式

SELECT COUNT(fieldname1)

聚合函数语句

表1 聚合函数语句

语句

说明

示例

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)