在 Apache Hive 中,聚合命令是指使用聚合函数对一组数据进行计算,并返回单个值的过程。以下是一些常用的Hive聚合函数:
-
COUNT():
- 计算行数或特定列的非空值数量。
COUNT(*) -- 统计所有行数,包括NULL值 COUNT(column_name) -- 统计指定列非NULL值的数量
-
SUM():
- 对数值类型的列求和。
SUM(salary) -- 计算salary列的所有值总和
-
AVG():
- 计算平均值。
AVG(age) -- 计算age列的平均年龄
-
MIN() 和 MAX():
- 找出一列中最小和最大的值。
MIN(order_date) -- 找出最早的订单日期 MAX(sales_amount) -- 找出最高的销售额
-
标准差与方差:
STDDEV_POP()
:计算整个总体的标准差。STDDEV_SAMP()
:计算样本的标准差。VARIANCE()
或VAR_POP()
:计算整个总体的方差。VAR_SAMP()
:计算样本的方差。
STDDEV_POP(salary) -- 计算salary列的总体标准差 VAR_SAMP(weight) -- 计算weight列的样本方差
-
分组统计:
聚合函数通常配合GROUP BY
子句一起使用,对不同分组的数据分别应用聚合操作。SELECT department, AVG(salary), MAX(salary) FROM employees GROUP BY department;
-
其他聚合函数:
COVAR_POP()
和COVAR_SAMP()
:计算两个列之间的协方差(总体和样本)。CORR()
:计算两列间的相关系数。PERCENTILE()
和PERCENTILE_APPROX()
:计算列值的百分位数。COLLECT_SET()
和COLLECT_LIST()
:收集一组唯一值或者所有值到一个集合。
注意:这些聚合函数不能应用于具有NULL值的列,除非明确指定了处理NULL的方式(例如,在某些数据库系统中可以使用COUNTIF()
等函数)。此外,某些聚合函数可能在Hive的不同版本中支持程度不同,建议查阅最新的Hive文档以获取最准确的信息。