大数据之Hive的聚合、排序和分组

本文详细介绍了如何在ApacheHive中使用聚合函数(如COUNT,SUM,AVG,MAX,MIN等)进行数据汇总,利用GROUPBY进行分组操作,以及ORDERBY进行排序。此外,还探讨了窗口函数在复杂数据分析中的应用,如计算员工工资排名。
摘要由CSDN通过智能技术生成

在Apache Hive中,聚合、排序和分组是数据分析中的基本操作,以下是它们的使用方式:

聚合(Aggregation)

聚合函数用于计算一组值的汇总统计量。常见的Hive聚合函数包括:

  • COUNT(*):计算行数
  • SUM(column_name):对某一列求和
  • AVG(column_name):计算平均值
  • MAX(column_name):找出一列的最大值
  • MIN(column_name):找出一列的最小值
  • GROUPING SETS, ROLLUP, CUBE:多维度聚合

例如:

SELECT department, COUNT(*), AVG(salary)
FROM employees
GROUP BY department;

分组(Grouping)

GROUP BY子句与聚合函数配合使用,将数据集按照指定列进行分组,然后对每个组执行聚合操作。

-- 按部门分组并计算每个部门的平均工资
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department;

排序(Ordering)

ORDER BY子句用于对查询结果进行排序。

-- 按照工资降序排列所有员工
SELECT * FROM employees
ORDER BY salary DESC;

-- 在分组的基础上进行排序
SELECT department, COUNT(*) as emp_count
FROM employees
GROUP BY department
ORDER BY emp_count DESC;

此外,Hive还提供了窗口函数来进行复杂的排序和分析任务,比如基于相邻行或某个窗口内的数据进行排序和聚合。

窗口函数(Window Functions)

窗口函数可以在一组相关行(即窗口)上执行计算,而不必将数据分为多个独立的组。

-- 计算每位员工相对于所在部门内其他员工的工资排名
SELECT id, name, salary, 
    RANK() OVER (PARTITION BY department ORDER BY salary DESC) as rank
FROM employees;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值