
# 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) |
   
