聚合函数
在 Hive 中,聚合函数是一类用于对一组值进行计算并返回单个值的函数。它们通常用于对数据进行汇总、统计和分析。对于初学者来说,理解聚合函数的概念和使用方法是掌握 Hive 数据处理的关键。
什么是聚合函数?
聚合函数(Aggregate Functions)是对一组值执行计算并返回单个值的函数。常见的聚合函数包括 COUNT
、SUM
、AVG
、MIN
和 MAX
。这些函数通常与 GROUP BY
子句一起使用,以便对分组后的数据进行汇总。
聚合函数通常用于处理数值型数据,但某些函数(如 COUNT
)也可以用于其他类型的数据。
常见的聚合函数
以下是 Hive 中一些常用的聚合函数及其用途:
- COUNT: 计算行数或非空值的数量。
- SUM: 计算数值列的总和。
- AVG: 计算数值列的平均值。
- MIN: 查找数值列的最小值。
- MAX: 查找数值列的最大值。
1. COUNT 函数
COUNT
函数用于计算行数或非空值的数量。它有两种常见用法:
COUNT(*)
: 计算表中的总行数。COUNT(column_name)
: 计算指定列中非空值的数量。
示例:
SELECT COUNT(*) AS total_rows FROM employees;
输入:
id | name | salary |
---|---|---|
1 | Alice | 5000 |
2 | Bob | 6000 |
3 | Charlie | NULL |
输出:
total_rows |
---|
3 |
2. SUM 函数
SUM
函数用于计算数值列的总和。
示例:
SELECT SUM(salary) AS total_salary FROM employees;
输入:
id | name | salary |
---|---|---|
1 | Alice | 5000 |
2 | Bob | 6000 |
3 | Charlie | NULL |
输出:
total_salary |
---|
11000 |
3. AVG 函数
AVG
函数用于计算数值列的平均值。
示例:
SELECT AVG(salary) AS average_salary FROM employees;
输入:
id | name | salary |
---|---|---|
1 | Alice | 5000 |
2 | Bob | 6000 |
3 | Charlie | NULL |
输出:
average_salary |
---|
5500 |
4. MIN 和 MAX 函数
MIN
和 MAX
函数分别用于查找数值列的最小值和最大值。
示例:
SELECT MIN(salary) AS min_salary, MAX(salary) AS max_salary FROM employees;
输入:
id | name | salary |
---|---|---|
1 | Alice | 5000 |
2 | Bob | 6000 |
3 | Charlie | NULL |
输出:
min_salary | max_salary |
---|---|
5000 | 6000 |
聚合函数与 GROUP BY
聚合函数通常与 GROUP BY
子句一起使用,以便对分组后的数据进行汇总。
示例:
假设我们有一个 sales
表,记录了每个销售员的销售额:
SELECT salesperson, SUM(sales) AS total_sales
FROM sales
GROUP BY salesperson;
输入:
salesperson | sales |
---|---|
Alice | 1000 |
Bob | 1500 |
Alice | 2000 |
Bob | 2500 |
输出:
salesperson | total_sales |
---|---|
Alice | 3000 |
Bob | 4000 |
实际应用场景
场景 1:计算每个部门的平均工资
假设我们有一个 employees
表,记录了每个员工的部门、姓名和工资。我们可以使用 AVG
函数和 GROUP BY
子句来计算每个部门的平均工资。
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
输入:
id | name | department | salary |
---|---|---|---|
1 | Alice | HR | 5000 |
2 | Bob | IT | 6000 |
3 | Charlie | HR | 5500 |
4 | David | IT | 7000 |
输出:
department | avg_salary |
---|---|
HR | 5250 |
IT | 6500 |
场景 2:查找每个销售员的最高销售额
假设我们有一个 sales
表,记录了每个销售员的销售额。我们可以使用 MAX
函数和 GROUP BY
子句来查找每个销售员的最高销售额。
SELECT salesperson, MAX(sales) AS max_sales
FROM sales
GROUP BY salesperson;
输入:
salesperson | sales |
---|---|
Alice | 1000 |
Bob | 1500 |
Alice | 2000 |
Bob | 2500 |
输出:
salesperson | max_sales |
---|---|
Alice | 2000 |
Bob | 2500 |
总结
聚合函数是 Hive 中用于对数据进行汇总和计算的重要工具。通过 COUNT
、SUM
、AVG
、MIN
和 MAX
等函数,我们可以轻松地对数据进行统计分析。结合 GROUP BY
子句,聚合函数可以用于对分组后的数据进行更复杂的计算。
在实际应用中,聚合函数通常与 GROUP BY
子句一起使用,以便对分组后的数据进行汇总。确保在使用聚合函数时,理解数据的结构和分组条件。
附加资源
练习
- 编写一个查询,计算
employees
表中每个部门的员工数量。 - 编写一个查询,计算
sales
表中每个销售员的总销售额和平均销售额。 - 编写一个查询,查找
employees
表中工资最高的员工及其工资。
通过完成这些练习,你将更好地掌握 Hive 中的聚合函数及其应用。