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

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

在这里插入图片描述

---------- 禁止修改 ----------
 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;




---------- end ----------
-- create table  if not exists usertab(
--     id string comment '用户id',
--     sex string comment '性别,f:女性,m:男性',
--     time string comment '出生日期',
--     education string comment '学历',
--     occupation string comment '职业',
--     income string comment '收入',
--     area string comment '出生地区',
--     desired_area string comment '向往地区',
--     city_countryside string comment '超市/农村'
-- )row format delimited fields terminated by ','; 


在这里插入图片描述

---------- 禁止修改 ----------
 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 rn 
from usertab1
)a where a.rn=1;





---------- end ----------
-- select area,education,income from(
--     select area,education,income,
--     row_number() over(partition by area,education order by income desc) as rn
--     from usertab1
-- ) where a.rn=1;

在这里插入图片描述

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

 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(a.cnted*100/b.cnt,2),'%'),a.education from(
    select count(*) as cnted,education from usertab2 group by education
)a ,(
    select count(*) as cnt from usertab2
)b order by a.education;



-- select concat(round(a.cnt*100/a.cnt_total*100,2),'%')as ct,education from(
--     select count(*) over(partition by education) as cnt,
-- count(*) over as cnt_total,education,row_number() over(partition by education)
-- )a where a.rn=1 order by education;

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Deng872347348

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

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

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

打赏作者

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

抵扣说明:

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

余额充值