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

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

sql 复制代码
---------- 禁止修改 ----------
drop database if exists mydb cascade;
---------- 禁止修改 ----------


---------- begin ----------
---创建mydb数据库
CREATE DATABASE mydb;

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

---创建表usertab
CREATE TABLE usertab (
    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 usertab;


---查询每一个用户从出生到现在的总天数
SELECT 
    id,
    DATEDIFF('2019-06-10', TO_DATE(REPLACE(time, '/', '-'))) AS days_since_birth
FROM usertab;


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

第二关 同一个地区相同的教育程度的最高收入

sql 复制代码
---------- 禁止修改 ----------
drop database if exists mydb cascade;
---------- 禁止修改 ----------


---------- begin ----------
---创建mydb数据库
CREATE DATABASE mydb;

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

---创建表usertab1
CREATE TABLE usertab1 (
    id INT, 
    sex STRING,
    time STRING,
    education STRING,
    occupation STRING,
    income INT,
    area STRING,
    desired_area STRING,
    city_countryside STRING 
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

---导入数据:/root/data1.txt
LOAD DATA LOCAL INPATH '/root/data1.txt' INTO TABLE usertab1;

--同一个地区相同的教育程度的最高收入
SELECT 
    area, 
    education, 
    MAX(income) AS max_income
FROM usertab1
GROUP BY area, education
ORDER BY area, 
         CASE education 
             WHEN '专科' THEN 1
             WHEN '本科' THEN 2
             WHEN '硕士' THEN 3
             ELSE 4
         END;

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

第三关 统计各级学历所占总人数百分比

sql 复制代码
---------- 禁止修改 ----------
drop database if exists mydb cascade;
set hive.mapred.mode=nonstrict;
---------- 禁止修改 ----------
 
 
---------- begin ----------
----创建mydb数据库
CREATE DATABASE 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(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER(), 2), '%') AS percentage,
    education
FROM usertab2
GROUP BY education
ORDER BY education;
---------- end ---------- 
相关推荐
斯文的八宝粥14 小时前
WPF企业内训全程实录(下)
大数据·hadoop·wpf
Zhu75815 小时前
使用腾讯CNB构建Hadoop定制容器镜像
大数据·hadoop·分布式
TTBIGDATA16 小时前
【Ambari Plus】13.Spark 安装
大数据·hadoop·分布式·spark·ambari·sqoop·ambari plus
sunxunyong18 小时前
Hadoop租户创建
大数据·hadoop·分布式
AllData公司负责人19 小时前
数据集成管理|AIIData数据中台实现MySQL、Hive、Oracle一键接入Doris
大数据·数据库·人工智能·hive·mysql·oracle·数据分析
泰克教育官方账号21 小时前
泰涨知识 | Hive集群环境部署
数据仓库·hive·hadoop
婉然从物1 天前
Flink SQL 元数据持久化实战:从“每次重启表消失”到“Hive Metastore 永久存储”
hive·sql·flink
龙石数据1 天前
MySQL 全量同步到 Hive 怎么做?三步配置教程
数据库·hive·mysql·数据治理·数据中台
心中有国也有家2 天前
E-Brufen 技术选型全景:Flutter + 鸿蒙 + Hive CE
hive·hadoop·学习·flutter·华为·harmonyos
数据库小学妹2 天前
数据库架构入门到进阶:单机、主从、分库分表到分布式的选型实战
数据仓库·分布式数据库·数据治理·数据库架构·架构设计·数据分层