跳到主要内容

聚合函数

在 Hive 中,聚合函数是一类用于对一组值进行计算并返回单个值的函数。它们通常用于对数据进行汇总、统计和分析。对于初学者来说,理解聚合函数的概念和使用方法是掌握 Hive 数据处理的关键。

什么是聚合函数?

聚合函数(Aggregate Functions)是对一组值执行计算并返回单个值的函数。常见的聚合函数包括 COUNTSUMAVGMINMAX。这些函数通常与 GROUP BY 子句一起使用,以便对分组后的数据进行汇总。

备注

聚合函数通常用于处理数值型数据,但某些函数(如 COUNT)也可以用于其他类型的数据。

常见的聚合函数

以下是 Hive 中一些常用的聚合函数及其用途:

  1. COUNT: 计算行数或非空值的数量。
  2. SUM: 计算数值列的总和。
  3. AVG: 计算数值列的平均值。
  4. MIN: 查找数值列的最小值。
  5. MAX: 查找数值列的最大值。

1. COUNT 函数

COUNT 函数用于计算行数或非空值的数量。它有两种常见用法:

  • COUNT(*): 计算表中的总行数。
  • COUNT(column_name): 计算指定列中非空值的数量。

示例:

sql
SELECT COUNT(*) AS total_rows FROM employees;

输入:

idnamesalary
1Alice5000
2Bob6000
3CharlieNULL

输出:

total_rows
3

2. SUM 函数

SUM 函数用于计算数值列的总和。

示例:

sql
SELECT SUM(salary) AS total_salary FROM employees;

输入:

idnamesalary
1Alice5000
2Bob6000
3CharlieNULL

输出:

total_salary
11000

3. AVG 函数

AVG 函数用于计算数值列的平均值。

示例:

sql
SELECT AVG(salary) AS average_salary FROM employees;

输入:

idnamesalary
1Alice5000
2Bob6000
3CharlieNULL

输出:

average_salary
5500

4. MIN 和 MAX 函数

MINMAX 函数分别用于查找数值列的最小值和最大值。

示例:

sql
SELECT MIN(salary) AS min_salary, MAX(salary) AS max_salary FROM employees;

输入:

idnamesalary
1Alice5000
2Bob6000
3CharlieNULL

输出:

min_salarymax_salary
50006000

聚合函数与 GROUP BY

聚合函数通常与 GROUP BY 子句一起使用,以便对分组后的数据进行汇总。

示例:

假设我们有一个 sales 表,记录了每个销售员的销售额:

sql
SELECT salesperson, SUM(sales) AS total_sales
FROM sales
GROUP BY salesperson;

输入:

salespersonsales
Alice1000
Bob1500
Alice2000
Bob2500

输出:

salespersontotal_sales
Alice3000
Bob4000

实际应用场景

场景 1:计算每个部门的平均工资

假设我们有一个 employees 表,记录了每个员工的部门、姓名和工资。我们可以使用 AVG 函数和 GROUP BY 子句来计算每个部门的平均工资。

sql
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;

输入:

idnamedepartmentsalary
1AliceHR5000
2BobIT6000
3CharlieHR5500
4DavidIT7000

输出:

departmentavg_salary
HR5250
IT6500

场景 2:查找每个销售员的最高销售额

假设我们有一个 sales 表,记录了每个销售员的销售额。我们可以使用 MAX 函数和 GROUP BY 子句来查找每个销售员的最高销售额。

sql
SELECT salesperson, MAX(sales) AS max_sales
FROM sales
GROUP BY salesperson;

输入:

salespersonsales
Alice1000
Bob1500
Alice2000
Bob2500

输出:

salespersonmax_sales
Alice2000
Bob2500

总结

聚合函数是 Hive 中用于对数据进行汇总和计算的重要工具。通过 COUNTSUMAVGMINMAX 等函数,我们可以轻松地对数据进行统计分析。结合 GROUP BY 子句,聚合函数可以用于对分组后的数据进行更复杂的计算。

提示

在实际应用中,聚合函数通常与 GROUP BY 子句一起使用,以便对分组后的数据进行汇总。确保在使用聚合函数时,理解数据的结构和分组条件。

附加资源

练习

  1. 编写一个查询,计算 employees 表中每个部门的员工数量。
  2. 编写一个查询,计算 sales 表中每个销售员的总销售额和平均销售额。
  3. 编写一个查询,查找 employees 表中工资最高的员工及其工资。

通过完成这些练习,你将更好地掌握 Hive 中的聚合函数及其应用。