HiveQL学习笔记(五):Hive练习题

本系列是本人对Hive的学习进行一个整理,主要包括以下内容:
1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介
2.HiveQL学习笔记(二):Hive基础语法与常用函数
3.HiveQL学习笔记(三):Hive表连接
4.HiveQL学习笔记(四):Hive窗口函数
5.HiveQL学习笔记(五):Hive练习题
接下来对第五个内容进行介绍。

HiveQL学习笔记(二)对应的练习题

HiveQL学习笔记(二):Hive基础语法与常用函数
这里没有原版的数据,只有字段名,所以只能靠脑补……主要是锻炼思考问题的方法,也可以上网找一些MySQL的题,然后用HiveSQL去完成。
在这里插入图片描述
在这里插入图片描述

select user_name
from user_info
where city='beijing'
and sex='female'
limit 10;

在这里插入图片描述
在这里插入图片描述

select user_name,piece,price
from user_trade
where dt='2019-04-09'
and goods_category='food';

在这里插入图片描述

select goods_category,
		sum(distinct user_name) as user_sum,
		sum(pay_amount) as total_amount 
from user_trade
where dt BETWEEN '2019-01-01' AND '2019-04-30'
group by goods_category;

在这里插入图片描述

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;

在这里插入图片描述

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 sum(pay_amount) desc
limit 5;

将user_trade中的时间戳转为以下时间格式
在这里插入图片描述

select pay_time,
from_unixtime(pay_time,'yyyy-MM-dd hh:mm:ss')
from user_trade
where dt='2019-04-09';
****************************
select pay_time,
from_unixtime(pay_time,'yyyy-MM-dd hh')
from user_trade
where dt='2019-04-09';
****************************
select pay_time,
from_unixtime(pay_time,'yyyy-MM-dd hh:mm')
from user_trade
where dt='2019-04-09';
****************************
select pay_time,
from_unixtime(pay_time,'yyyyMMdd')
from user_trade
where dt='2019-04-09';

在这里插入图片描述

select user_name,
datediff('2019-05-01',to_date(firstactivetime))
from user_info
limit 10;

在这里插入图片描述

select case when age<20 then '20岁以下'
			when age>=20 and age<30 then'20-30岁'
			when age>=30 and age<40 then'30-40岁'
			else '40岁以上'
			end as '年龄分组',
	   count(distinct user_id) as user_num
from user_info
group by case when age<20 then '20岁以下'
			  when age>=20 and age<30 then'20-30岁'
			  when age>=30 and age<40 then'30-40岁'
			  else '40岁以上'
			  end;

在这里插入图片描述

select sex,
if(level>5,'高级','低级'),
count(distinct user_id) as user_num
from user_info
group by sex,if(level>5,'高级','低级');

在这里插入图片描述

select substr(firstactivetime,1,
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值