头歌平台云计算实验


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

Hive综合应用案例——用户学历查询

1 查询每一个用户从出生到现在的总天数

---------- 禁止修改 ----------
 drop database if exists mydb cascade;
---------- 禁止修改 ----------


---------- begin ----------
---创建mydb数据库
create database if not exists mydb;
---使用mydb数据库
use mydb;



---创建表user
create table usertab(
    id string,
    sex string,
    time string,
    education string,
    occupation string,
    income string,
    area string,
    desired_area string,
    city_countryside string
)
row format delimited fields terminated by ',';



---导入数据:/root/data.txt
load data local inpath '/root/data.txt' into table usertab;



--查询每一个用户从出生到2019-06-10的总天数
select id, datediff('2019-06-10',regexp_replace(time, '/', '-')) from usertab;

2 同一个地区相同的教育程度的最高收入

---------- 禁止修改 ----------
 drop database if exists mydb cascade;
---------- 禁止修改 ----------


---------- begin ----------



--创建mydb数据库
create database if not exists mydb;



---使用mydb数据库
use mydb;



---创建表user
create table usertab1(
    id int,
    sex string,
    time string,
    education string,
    occupation string,
    income string,
    area string,
    desired_area string,
    city_countryside string
)
row format delimited fields terminated by ',';



---导入数据:/root/data.txt
load data local inpath '/root/data1.txt' into table usertab1;



--同一个地区相同的教育程度的最高收入
select area,education,income
from(
    select area,education,income,
    row_number() over(
        partition by area, education order by income desc
    ) as t1
    from usertab1
) as t2
where t2.t1 = 1;



---------- end ----------

3 统计各级学历所占总人数百分比

---------- 禁止修改 ----------

 drop database if exists mydb cascade;
 set hive.mapred.mode=nonstrict;
---------- 禁止修改 ----------


---------- begin ----------



--创建mydb数据库
create database if not exists mydb;



---使用mydb数据库
use mydb;



---创建表user
create table usertab2(
    id int,
    sex string,
    time string,
    education string,
    occupation string,
    income string,
    area string,
    desired_area string,
    city_countryside string
)
row format delimited fields terminated by ',';



---导入数据:/root/data.txt
load data local inpath '/root/data.txt' into table usertab2;



--统计各级学历所占总人数百分比(对结果保留两位小数)
select concat(round(t1.cnted * 100 / t2.cnt, 2),'%'), t1.education
from
    (
        select count(*) as cnted,education
        from usertab2
        group by education
    ) as t1,

    (
        select count(*) as cnt from usertab2
    ) as t2
order by t1.education;



---------- end ----------
  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fuhanghang@yeah.net

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值