hive学习笔记-高级查询

本文详细介绍了Hive中的高级查询操作,包括聚合函数、排序、分组、连接和优化技术。重点讲解了count、sum、avg、distinct的用法,以及order by、group by、join、left outer join、mapjoin的实现与区别。此外,还提到了解决数据倾斜的策略和distribute by、sort by、cluster by的使用场景。
摘要由CSDN通过智能技术生成
聚合函数
count计数
count(*):不全都是NULL,就加1;count(1):当只要有一列是NULL就不会加1;count(col):当col列不为空就会加1
sum求和
sum(可转成数字的值)返回bigint,比如求和后加1,1必须转化成为bigint类型,sum(col)+cast(1 as bigint)
avg求平均值
avg(可转化成数字的值)返回double
distinct不同值的个数
count(distinct col)

Order by
按照某些字段排序,后面可以有很多列进行排序,默认是字典排序。Order by 是全局排序,Order by这个过程只需要一个且只有一个reduce,无论你配置多少各reduce,到最后都会汇总一个reduce进行Order by,所以当数据量非常大的时候要考虑好是否使用Order by;
select c1,other from tableName where condition order by c1,c2[asc|desc]
如:select * from usertable order id asc,name desc;

Group by
根据某些字段值进行分组,有相同值的放到一起。注意,select后面查询的列,除了聚合函数外都应该出现再group by中,group by后面也可以跟表达式,如substr(col),对某一列字段截取的部分进行分组。having是在group by之后进一步进行筛选的。他使用了reduce操作,受限于reduce个数,设置reduce参数mapred.reduce.tasks。文件的输出个数就是re
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值