---------- 禁止修改 ----------dropdatabaseifexists mydb cascade;set hive.auto.convert.join=false;set hive.ignore.mapjoin.hint=false;---------- 禁止修改 -------------------- begin -------------创建mydb数据库createdatabaseifnotexists mydb;---使用mydb数据库 use mydb;---创建表scorecreatetableifnotexists score(
name string comment'姓名',
chinese string comment'语文成绩',
maths string comment'数学成绩')row format delimited fieldsterminatedby',' stored as textfile;---导入数据:/root/data/step1_files/score.txtloaddatalocal inpath '/root/data/step1_files/score.txt'intotable score;--创建表classcreatetableifnotexists class(
stuname string comment'姓名',
classname string comment'所在班级')row format delimited fieldsterminatedby',' stored as textfile;---导入数据:/root/data/step1_files/class.txtloaddatalocal inpath '/root/data/step1_files/class.txt'intotable class;--计算每个班的语文总成绩和数学总成绩,要求有哪科低于60分,该名学生成绩不计入计算select t1.classname,t1.chinese,t2.maths from(select c.classname classname,sum(s.chinese) chinese from class c,score s
where c.stuname=s.name and s.chinese>=60groupby c.classname) t1,(select c.classname classname,sum(s.maths) maths from class c,score s
where c.stuname=s.name and s.maths>=60groupby c.classname) t2
where t1.classname=t2.classname;---------- end ----------
第2关:查询选修了3门以上的课程的学生姓名
---------- 禁止修改 ----------dropdatabaseifexists mydb cascade;set hive.auto.convert.join=false;set hive.ignore.mapjoin.hint=false;---------- 禁止修改 -------------------- begin -------------创建mydb数据库createdatabaseifnotexists mydb;---使用mydb数据库 use mydb;---创建表my_stucreatetableifnotexists my_stu(
id string comment'学生id',
name string comment'学生姓名',
sex string comment'性别',
age string comment'年龄',
col string comment'所选的系')row format delimited fieldsterminatedby',' stored as textfile;---导入数据:/root/data/step2_files/my_student.txtloaddatalocal inpath '/root/data/step2_files/my_student.txt'intotable my_stu;--创建表my_scorecreatetableifnotexists my_score(
id string comment'学生id',
courseid string comment'课程id',
score string comment'成绩')row format delimited fieldsterminatedby',' stored as textfile;---导入数据:/root/data/step2_files/my_score.txtloaddatalocal inpath '/root/data/step2_files/my_score.txt'intotable my_score;--创建表my_coursecreatetableifnotexists my_course(
courseid string comment'课程id',
coursename string comment'课程名称')row format delimited fieldsterminatedby',' stored as textfile;---导入数据:/root/data/step2_files/my_course.txtloaddatalocal inpath '/root/data/step2_files/my_course.txt'intotable my_course;---查询选修了3门以上的课程的学生姓名。 select stu.name,t.coursenum
from(select id,count(courseid) coursenum from my_score
groupby id) t,my_stu stu
where t.coursenum>=3and stu.id=t.id;---------- end ----------
第3关:课程选修人数
---------- 禁止修改 ----------dropdatabaseifexists mydb cascade;set hive.auto.convert.join=false;set hive.ignore.mapjoin.hint=false;---------- 禁止修改 -------------------- begin -------------创建mydb数据库createdatabaseifnotexists mydb;---使用mydb数据库 use mydb;---创建表my_stucreatetableifnotexists my_stu(
id string comment'学生id',
name string comment'学生姓名',
sex string comment'性别',
age string comment'年龄',
col string comment'所选的系')row format delimited fieldsterminatedby',' stored as textfile;---导入数据:/root/data/step2_files/my_student.txtloaddatalocal inpath '/root/data/step2_files/my_student.txt'intotable my_stu;--创建表my_scorecreatetableifnotexists my_score(
id string comment'学生id',
courseid string comment'课程id',
score string comment'成绩')row format delimited fieldsterminatedby',' stored as textfile;---导入数据:/root/data/step2_files/my_score.txtloaddatalocal inpath '/root/data/step2_files/my_score.txt'intotable my_score;--创建表my_coursecreatetableifnotexists my_course(
courseid string comment'课程id',
coursename string comment'课程名称')row format delimited fieldsterminatedby',' stored as textfile;---导入数据:/root/data/step2_files/my_course.txtloaddatalocal inpath '/root/data/step2_files/my_course.txt'intotable my_course;---查询每个课程有多少人选修select t2.coursename,count(*)from(select t1.name name,course.coursename coursename from(select stu.name name,score.courseid courseid from my_score score,my_stu stu
where score.id=stu.id) t1,my_course course where t1.courseid=course.courseid) t2 groupby t2.coursename;---------- end ----------
第4关:数据库课程的平均成绩
---------- 禁止修改 ----------dropdatabaseifexists mydb cascade;set hive.auto.convert.join=false;set hive.ignore.mapjoin.hint=false;---------- 禁止修改 -------------------- begin -------------创建mydb数据库createdatabaseifnotexists mydb;---使用mydb数据库 use mydb;---创建表my_stucreatetableifnotexists my_stu(
id string comment'学生id',
name string comment'学生姓名',
sex string comment'性别',
age string comment'年龄',
col string comment'所选的系')row format delimited fieldsterminatedby',' stored as textfile;---导入数据:/root/data/step2_files/my_student.txtloaddatalocal inpath '/root/data/step2_files/my_student.txt'intotable my_stu;--创建表my_scorecreatetableifnotexists my_score(
id string comment'学生id',
courseid string comment'课程id',
score string comment'成绩')row format delimited fieldsterminatedby',' stored as textfile;---导入数据:/root/data/step2_files/my_score.txtloaddatalocal inpath '/root/data/step2_files/my_score.txt'intotable my_score;--创建表my_coursecreatetableifnotexists my_course(
courseid string comment'课程id',
coursename string comment'课程名称')row format delimited fieldsterminatedby',' stored as textfile;---导入数据:/root/data/step2_files/my_course.txtloaddatalocal inpath '/root/data/step2_files/my_course.txt'intotable my_course;---计算shujuku课程的平均成绩 select t3.coursename,t2.avg_score from(select t1.courseid courseid,avg(score.score) avg_score from(select courseid from my_course
where my_course.coursename='shujuku') t1,my_score score where t1.courseid=score.courseid groupby t1.courseid) t2,my_course t3 where t2.courseid=t3.courseid;---------- end ----------