Apache Tajo - 聚合和窗口函数

本章详细介绍了聚合函数和窗口函数。

聚合函数

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

S.No. 功能与描述
1 AVG(exp)

对数据源中所有记录的列进行平均。

2 CORR(expression1, expression2)

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

3 COUNT()

返回行数。

4 MAX(expression)

返回所选列的最大值。

5 MIN(expression)

返回所选列的最小值。

6 SUM(expression)

返回给定列的总和。

7 LAST_VALUE(expression)

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

Window (窗口)函数

Window (窗口)函数在一组行上执行,并为查询中的每一行返回一个值。 术语"Window"(窗口)具有函数的行集的含义。

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

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

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

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

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