HiveSQL案例——分析需求(查询和学生期末考试的一些信息)

目录

前期准备:

一、环境准备

二、数据准备

三、表格准备

具体的HiveQL需求分析

1.查询2019级2班ETL技术期末考试成绩排名前6的学生信息。

2.统计2019级3班ETL技术期末综合成绩80分以上的学生人数(含80分)。

3.统计2019级3班ETL技术期末考试成绩及格的学生人数。

4.统计2019级4班参加ETL技术考试的学生总人数。

5.统计2019级3班参加ETL技术考试的学生总人数。

6.查询19数据科学与大数据技术1班吉苇同学的学号、以及所有成绩。

7.统计2019级1班ETL技术的期末综合成绩不及格的学生人数。

8.查询2019级1班ETL技术综合成绩排名前5的学生学号和姓名。

9.统计19数据科学与大数据技术全年级的学生总人数。

10.查询2019级3班ETL技术期末考试成绩排名前7的学生信息。

11.查询2019级全年级ETL技术期末考试成绩排名前8的学生信息。

12.查询2019级全年级ETL技术的综合成绩85分及以上的学生信息。

13.分析出2019级全年级ETL技术的期末考试成绩分布在80-92分之间的学生信息。

前期准备:
一、环境准备

启动集群:start-all.sh


启动MySQL服务器  登录MySQL数据库


登录hive ,设置hive自动选择本地执行模式

二、数据准备

1.Excel数据处理并另存为.txt文件

Excel中:

另存为.txt文件 


2.在.txt文件中将空格替换(Ctrl+h)为|,另存使编码为UTF-8

另存使编码为UTF-8 

 4.将.txt文件上传至虚拟机software目录下


再上传(hdfs dfs -put或者hadoop fs -put)至hdfs

三、表格准备

创建表gznu19_c1、gznu19_c2、gznu19_c3、gznu19_c4

#gznu19_c1为表1,存储19级1班的数据,date01是默认的存储位置
create table gznu19_c1(
  xuhao String,  #序号
  xuehao String,  #学号
  name String,  #姓名
  class String,  #班级
  kaoqing String.  #考勤
  psgrade String,  #平时成绩
  qmgrade String,  #期末成绩
  zhgrade String  #综合成绩
)
row format delimited fields terminated by '|'
stored as textfile
location '/date01';

建表语句如下:

具体的HiveQL需求分析
1.查询2019级2班ETL技术期末考试成绩排名前6的学生信息。
select * from gznu19_c2 order by qmgrade desc limit 6;

2.统计2019级3班ETL技术期末综合成绩80分以上的学生人数(含80分)。
select count(*) from gznu19_c3 where zhgrade>=80;

3.统计2019级3班ETL技术期末考试成绩及格的学生人数。
select count(*) from gznu19_c3 where qmgrade >= 60;

4.统计2019级4班参加ETL技术考试的学生总人数。
select count(*) from gznu19_c4 where zhgrade!='缓考' and zhgrade!='缺考';

5.统计2019级3班参加ETL技术考试的学生总人数。
select count(*) from gznu19_c3 where class="19数据科学与大数据技术3班";

6.查询19数据科学与大数据技术1班吉苇同学的学号、以及所有成绩。
select xuehao,kaoqing,psgrade,qmgrade,zhgrade from gznu19_c1 where name='吉苇';

7.统计2019级1班ETL技术的期末综合成绩不及格的学生人数。
select count(*) from gznu19_c1 where qmgrade < 60;

8.查询2019级1班ETL技术综合成绩排名前5的学生学号和姓名。
select xuehao,name from gznu19_c1 order by zhgrade desc limit 5;

9.统计19数据科学与大数据技术全年级的学生总人数。
SELECT COUNT(*) AS total_students
FROM (
  SELECT xuehao FROM gznu19_c1
  UNION ALL
  SELECT xuehao FROM gznu19_c2
  UNION ALL
  SELECT xuehao FROM gznu19_c3
  UNION ALL
  SELECT xuehao FROM gznu19_c4
) S;

10.查询2019级3班ETL技术期末考试成绩排名前7的学生信息。
select * from gznu19_c3 order by qmgrade desc limit 7;

11.查询2019级全年级ETL技术期末考试成绩排名前8的学生信息。
SELECT * 
FROM(
  SELECT * FROM gznu19_c1 
  UNION ALL
  SELECT * FROM gznu19_c2 
  UNION ALL
  SELECT * FROM gznu19_c3 
  UNION ALL
  SELECT * FROM gznu19_c4 
)T
order by qmgrade desc limit 8;

12.查询2019级全年级ETL技术的综合成绩85分及以上的学生信息。
SELECT * 
FROM (
  SELECT * FROM gznu19_c1 
  UNION ALL
  SELECT * FROM gznu19_c2 
  UNION ALL
  SELECT * FROM gznu19_c3 
  UNION ALL
  SELECT * FROM gznu19_c4 
) t
where zhgrade >= 85;

 

13.分析出2019级全年级ETL技术的期末考试成绩分布在80-92分之间的学生信息。
SELECT * 
FROM (
  SELECT * FROM gznu19_c1 
  UNION ALL
  SELECT * FROM gznu19_c2 
  UNION ALL
  SELECT * FROM gznu19_c3 
  UNION ALL
  SELECT * FROM gznu19_c4 
) t
where qmgrade > 80 and qmgrade < 92;

  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你好皮~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值