Hive 基础测试

Posted 保护胖丁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive 基础测试相关的知识,希望对你有一定的参考价值。

准备数据

  • 学生表student
         学号sid,姓名sname,性别ssex,年龄sage,系 department
         95001,李勇,男,20,CS
         95002,刘晨,女,19,IS
         95003,王敏,女,22,MA
         95004,张立,男,19,IS
         95005,刘刚,男,18,MA
         95006,赵丽,女,20,CS
  • 成绩表score
         学生编号sid,课程编号cid,成绩sscore 
         95001,1,81
         95001,2,85
         95001,3,88
         95001,4,70
         95002,1,90
         95002,2,80
         95002,3,90
         95002,4,80
         95003,1,70
         95003,2,78
         95003,3,65
         95003,4,65
         95004,1,70
         95004,2,90
         95004,3,85
         95004,4,90
         95005,1,70
         95005,2,90
         95005,3,70
         95005,4,90
         95006,1,70
         95006,2,90
         95006,3,70
         95006,4,90
  • 课程表course
         课程编号cid,课程名cname
         1,数据库
         2,数学
         3,信息系统
         4,操作系统

需求1:创建三个外部表,并分别给外部表加载数据.

create external  table student(
 sid string,
 sname string,
 ssex string,
 sage int)
row format delimited fields terminated by ',';
load data local inpath '/root/test/student.txt' into table student;


create external  table score(
sid string,
cid string,
 sscore int)
row format delimited fields terminated by ',';
load data local inpath '/root/test/score.txt' into table score;


create  external table course(
cid string,
cname string)
row format delimited fields terminated by ',';
load data local inpath '/root/test/course.txt' into table course;

需求2:查询各课的学生人数。

select  b.cname, a.num
from 
(select cid ,count(*)  num from score group by cid) a, course b
where a.cid=b.cid;

需求3: 查询每个学生的总成绩,并对总成绩进行降序排序,要求显示字段:学生名字,学生学号,学生总成绩

select  st.sname ,st.sid  ,sum(sc.sscore)
from student st
    join score  sc
        on st.sid=sc.sid
group by st.sname, st.sid;

需求4:求总课程平均分最高的前三名学生

select sname,b.dr,b.avgScore
from(select a.sid,avgScore,dense_rank() over(order by avgScore desc) dr
from (select sid,avg(sscore) avgScore
from score group by sid) a) b,student 
where b.sid = student.sid and dr<4;

以上是关于Hive 基础测试的主要内容,如果未能解决你的问题,请参考以下文章

Hive 基础测试

hive基础知识五

Hive数据仓库(建表·分区·分桶)基础

[vscode]--HTML代码片段(基础版,reactvuejquery)

CIA Hive测试指南——源代码获取与简要分析

CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段