📜  Teradata聚合函数

📅  最后修改于: 2021-01-11 11:23:42             🧑  作者: Mango

Teradata聚合功能

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

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

  • 计数
  • 最大
  • 最小
  • AVG

在此示例中,假设以下公司员工的薪水表。

Employee Id Gross Deduction NetPay
1002 12,000 2,000 10,000
1004 20,000 1,000 18,000
1003 24,000 1,000 23,000
1005 30,000 00 30,000
1001 40,000 3,000 37,000

1. COUNT

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

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

SELECT count(*) from Salary;

输出量

5 

2.最大

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

下面的示例返回最大员工净工资。

SELECT max(NetPay) from Salary;

输出量

37,000 

3.分钟

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

以下示例从“薪金”表返回最低员工净工资。

SELECT min(NetPay) from Salary;

输出量

10,000

4. AVG

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

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

SELECT avg(NetPay) from Salary; 

输出量

23,600

5.总和

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

下面的示例根据“薪金”表计算员工的净薪金总和。

SELECT sum(NetPay) from Salary;

输出量

118,000

浮点数据的汇总操作

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

浮点算术的非关联性也会影响聚合运算。每当在给定的一组浮点数据上使用聚合函数,每次获得不同的结果。

当Teradata数据库执行聚合时,它将累加计算中涉及的每个AMP的各个术语,并按到达顺序评估这些术语以产生最终结果。

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

汇总条款

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

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

DISTINCT选项

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

以下SELECT返回表中唯一职位的数量。

SELECT COUNT(DISTINCT Deduction) FROM Salary;

输出量

2000
1000
00
3000

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

SELECT SUM(DISTINCT x), AVG(DISTINCT x) FROM Salary;

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

SELECT SUM(DISTINCT x), AVG(DISTINCT y) FROM Salary;