聚合与窗口函数



本章详细解释了聚合函数和窗口函数。

聚合函数

聚合函数从一组输入值生成单个结果。下表详细描述了聚合函数列表。

序号 函数及描述
1 AVG(exp)

计算数据源中所有记录的列的平均值。

2 CORR(expression1, expression2)

返回一组数字对之间的相关系数。

3 COUNT()

返回行数。

4 MAX(expression)

返回所选列的最大值。

5 MIN(expression)

返回所选列的最小值。

6 SUM(expression)

返回给定列的总和。

7 LAST_VALUE(expression)

返回给定列的最后一个值。

窗口函数

窗口函数在一组行上执行,并为查询中的每一行返回单个值。窗口指的是函数作用的行集。

查询中的窗口函数使用 OVER() 子句定义窗口。

OVER() 子句具有以下功能:

  • 定义窗口分区以形成行组。(PARTITION BY 子句)
  • 对分区内的行进行排序。(ORDER BY 子句)

下表详细描述了窗口函数。

函数 返回类型 描述
rank() int 返回当前行的排名,带间隙。
row_num() int 返回其分区内当前行的序号,从 1 开始计数。
lead(value[, offset integer[, default any]]) 与输入类型相同 返回在分区内当前行之后 offset 行处计算的值。如果没有这样的行,则返回默认值。
lag(value[, offset integer[, default any]]) 与输入类型相同 返回在分区内当前行之前 offset 行处计算的值。
first_value(value) 与输入类型相同 返回输入行的第一个值。
last_value(value) 与输入类型相同 返回输入行的最后一个值。
广告