
# 聚合函数
聚合函数将所有的行作为输入，并返回单个聚合值作为结果。
表1聚合函数 
| 函数                                                                      | 描述                                                                                                                                   |
|:---|:---|
| COUNT(\[ ALL \] expression \| DISTINCT expression1 \[, expression2\]\*) | 默认情况下或使用关键字 ALL，返回不为 NULL 的表达式的输入行数。使用 DISTINCT 则对所有值去重后计算。                                                                          |
| COUNT(\*) \| COUNT(1)                                                   | 返回输入行数。                                                                                                                              |
| AVG(\[ ALL \| DISTINCT \] expression)                                   | 默认情况下或使用关键字 ALL，返回所有输入行中表达式的平均值（算术平均值）。使用 DISTINCT 则对所有值去重后计算。                                                                       |
| SUM(\[ ALL \| DISTINCT \] expression)                                   | 默认情况下或使用关键字 ALL，返回所有输入行的表达式总和。使用 DISTINCT 则对所有值去重后计算。                                                                                |
| MAX(\[ ALL \| DISTINCT \] expression)                                   | 默认情况下或使用关键字 ALL，返回所有输入行中表达式的最大值。使用 DISTINCT 则对所有值去重后计算。                                                                              |
| MIN(\[ ALL \| DISTINCT \] expression )                                  | 默认情况下或使用关键字 ALL，返回所有输入行中表达式的最小值。使用 DISTINCT 则对所有值去重后计算。                                                                              |
| STDDEV_POP(\[ ALL \| DISTINCT \] expression)                            | 默认情况下或使用关键字 ALL，返回所有输入行中表达式的总体标准偏差。使用 DISTINCT 则对所有值去重后计算。                                                                           |
| STDDEV_SAMP(\[ ALL \| DISTINCT \] expression)                           | 默认情况下或使用关键字 ALL，返回所有输入行中表达式的样本标准偏差。使用 DISTINCT 则对所有值去重后计算。                                                                           |
| VAR_POP(\[ ALL \| DISTINCT \] expression)                               | 默认情况下或使用关键字 ALL，返回所有输入行中表达式的总体方差（总体标准差的平方）。使用 DISTINCT 则对所有值去重后计算。                                                                   |
| VAR_SAMP(\[ ALL \| DISTINCT \] expression)                              | 默认情况下或使用关键字 ALL，返回所有输入行中表达式的样本方差（样本标准差的平方）。使用 DISTINCT 则对所有值去重后计算。                                                                   |
| COLLECT(\[ ALL \| DISTINCT \] expression)                               | 默认情况下或使用关键字 ALL，返回跨所有输入行的多组表达式。NULL 值将被忽略。使用 DISTINCT 则对所有值去重后计算                                                                     |
| VARIANCE(\[ ALL \| DISTINCT \] expression)                              | VAR_SAMP() 的同义方法。                                                                                                                    |
| RANK()                                                                  | 返回值在一组值中的排名。结果是 1 加上分区顺序中当前行之前或等于当前行的行数。排名在序列中不一定连续。                                                                                 |
| DENSE_RANK()                                                            | 返回值在一组值中的排名。结果是一加先前分配的等级值。与函数 rank 不同，dense_rank 不会在排名序列中产生间隙。                                                                       |
| ROW_NUMBER()                                                            | 在窗口分区内根据 rows 的排序为每一行分配一个唯一的序列号，从一开始。ROW_NUMBER 和 RANK 相似。ROW_NUMBER 按 顺序对所有行进行编号（例如 1，2，3，4，5）。RANK 为等值 row 提供相同的序列值（例如 1，2，2，4，5）。 |
| LEAD(expression \[, offset\] \[, default\])                             | 返回窗口中当前行之后第 offset 行处的表达式值。offset 的默认值为 1，default 的默认值为 NULL。                                                                        |
| LAG(expression \[, offset\] \[, default\])                              | 返回窗口中当前行之前第 offset 行处的表达式值。offset 的默认值为 1，default 的默认值为 NULL。                                                                        |
| FIRST_VALUE(expression)                                                 | 返回一组有序值中的第一个值。                                                                                                                       |
| LAST_VALUE(expression)                                                  | 返回一组有序值中的最后一个值。                                                                                                                      |
| LISTAGG(expression \[, separator\])                                     | 连接字符串表达式的值并在它们之间放置分隔符值。字符串末尾不添加分隔符时则分隔符的默认值为","。                                                                                     |
   
