目标:
1、掌握hive基础语法、常用函数及其组合使用
2、掌握一些基本业务指标的分析思路与实现技巧
一、基础语法
1、SELECT ... A... FORM ...B... WHERE ...C...
1)某次经营活动中,商家发起了“异性拼团购”,试着针对某个地区的用户进行推广,找出匹配用户。
"选出城市在北京,性别位女的10个用户名"
select user_name
from user_info
where city='beijing' and sex='female'
limit 10;
注意:如果该表是一个分区表,则where条件中必须对分区字段进行限制
2)选出在2018年12月31日,购买的商品品类是food的用户名、购买数量、支付金额
select user_name
,piece
,pay_amount
from user_trade
where dt='2018-12-31' and goods_category='food';
2、GROUP BY(分类汇总)
3)试着对本公司2019年第一季度商品的热度与价值度进行分析。
"2019年一月到三月,每个品类有多少人购买,累计金额是多少"
SELECT goods_category
,count(user_name) as user_num
,sum(pay_amount) as total_amount
from user_trade
WHERE dt between '2019-01-01' and '2019-03-31'
group by goods_category
常用的聚会函数:
1、count():计数 count(distinct...)去重计数
2、sum():求和
3、avg():平均值
4、max():最大值
5、min():最小值
GROUP BY ... HAVING(分类汇总过滤)
4)找出在2019年4月支付金额超过5万元的用户,给这些VIP用户赠送优惠券
SELECT user_name,sum(pay_amount) as total_amount
from user_trade
WHERE dt between '2019-04-01' and '2019-04-30'
group by user_name
HAVING sum(pay_amount)>50000;
3、ORDER BY(排序)
5)2019年4月,支付金额最多的TOP5用户
SELECT user_name,sum(pay_amount) as total_amount
from user_trade
WHERE dt between '2019-04-01' and '2019-04-30'
group by user_name
order by total_amount desc
limit 5;