Hive DML 查询

聚合函数

常见的聚合函数 包括 max min sum avg count,这类聚合函数,都是会执行MapReduce的

-- 求员工表中 最大 最小 平均 以及所有员工工资的和
 select max(sal),min(sal),avg(sal),sum(sal) from ruoze_emp;

在这里插入图片描述

分组查询

出现在select中的字段,要么出现在group by子句中,要么出现在聚合函数中;

--求部门的平均工资
select deptno,avg(sal) from ruoze_emp group by deptno;

在这里插入图片描述

--求每个部门、工作岗位的最高工资
select deptno,job,max(sal) from ruoze_emp group by deptno,job;

在这里插入图片描述

--求每个部门的平均薪水大于2000的部门
select deptno,avg(sal) from ruoze_emp group by deptno having avg(sal) >2000;
注意: 在分组之后的条件 需要在使用having 来过滤 不可以使用where ...

在这里插入图片描述

判断查询

case when then 相当于 if else

-- 对不同工资的人,给出不同的评判
select ename, sal,
case 
when sal>1 and sal<=1000 then 'LOWER'
when sal>1000 and sal<=2000 then 'MIDDLE'
when sal>2000 and sal<=4000 then 'HIGH'
ELSE 'HIGHEST' end
from ruoze_emp;

在这里插入图片描述

Union 和 Union All

union all 常用于处理数据倾斜问题。
数据倾斜思路,一般将数据切下的表,切成小表分开处理 然后在union all 的到最终的数据;

select count(1) from ruoze_emp where deptno=10
union all
select count(1) from ruoze_emp where deptno=20;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值