Teradata 聚合函数

2025年3月17日 | 阅读 3 分钟

聚合函数通常用于算术表达式中。 聚合函数对一组行进行操作,并为每个组的结果表返回一个单独的数值。

Teradata 支持常见的聚合函数。它们可以与 SELECT 语句一起使用。

  1. COUNT
  2. SUM
  3. MAX
  4. MIN
  5. AVG

示例

在此示例中,假设公司员工的 Salary 表如下所示。

员工编号总收入Deduction (扣除额)NetPay (实付工资)
100212,0002,00010,000
100420,0001,00018,000
100324,0001,00023,000
100530,0000030,000
100140,0003,00037,000

1. COUNT

COUNT 聚合函数用于计算表的记录数。

以下示例计算上述 Salary 表中的行数。

输出

5 

2. MAX

MAX 聚合函数返回表中指定列的最大值。

以下示例返回员工的最高净工资。

输出

37,000 

3. MIN

MIN 聚合函数返回指定列的最小值。

以下示例从 Salary 表中返回员工的最低净工资。

输出

10,000

4. AVG

AVG 聚合函数返回指定列的平均值。

以下示例返回表中员工的平均净工资。

输出

23,600

5. SUM

SUM 聚合函数对指定列的值求和。

以下示例计算员工的净工资总和,来自 Salary 表。

输出

118,000

对浮点数据的聚合操作

由于近似和舍入误差,涉及浮点数的运算并不总是可结合的。 例如,((A + B) + C) 并不总是等于 (A + (B + C))。

浮点算术的不可结合性也会影响聚合操作。 每次我们在给定的浮点数据集上使用聚合函数时,都会得到不同的结果。

当 Teradata 数据库执行聚合时,它会从参与计算的每个 AMP 累积单个项,并按到达顺序评估这些项以生成最终结果。

评估顺序可能会产生略有不同的结果,并且各个 AMP 完成其工作部分的顺序是不可预测的,因此在同一系统上对同一数据进行聚合函数操作的结果可能会有所不同。

聚合子句

聚合函数可以出现在以下类型的子句中

  • WHERE: ABORT 语句的 WHERE 子句,用于指定中止条件。 但是,聚合函数不能出现在 SELECT 语句的 WHERE 子句中。
  • HAVING: HAVING 子句,用于指定组条件。

DISTINCT 选项

DISTINCT 选项指定在处理表达式时,不应使用重复值。

以下 SELECT 语句返回表中唯一职位标题的数量。

输出

2000
1000
00
3000

一个查询可以有多个使用 DISTINCT 的聚合函数,使用相同的表达式,例如

一个查询也可以有多个使用 DISTINCT 的聚合函数,使用不同的表达式,例如