Hive案例 学生成绩表综合案例
首先給出各個表的數據
?表1 學生表 <學號,姓名,性別,年齡,系> - <Sno,Sname,Ssex,Sage,Sdepartment>
95001,李勇,男,20,CS
95002,劉晨,女,19,IS
95003,王敏,女,22,MA
95004,張立,男,19,IS
95005,劉剛,男,18,MA
95006,孫慶,男,23,CS
?表2 課程表<課程ID,課程名>-
1,數據庫
2,數學
3,信息系統
4,操作系統
5,數據結構
6,數據處理
?表3 中間表<學生ID,課程ID,成績>
95001,1,81
95001,2,85
95001,3,88
95001,4,70
95002,2,90
需求
1、查詢全體學生的學號與姓名。
select Sno,Sname from s1;
2、查詢選修了課程的學生姓名。
select Sname from s1 left semi join s3 on s1.Sno = s3.Sno;
select distinct Sname from s3;
3、查詢學生的總人數。
select count() from s1;
4、計算1號課程的學生平均成績。
>select Classid,avg(Score) from s3
> where Classid = ‘1’
> group by Classid;
5、查詢選修1號課程的學生最高分數
> select Classid,max(Score) max_score from s3
> where Classid = ‘1’
> group by Classid;
6、求各個課程號及相應的選課人數
> select Classid,count(distinct Sno) count_Sno from s3
> group by Classid;
7、查詢學生的得分情況。
>select s1.Sname,s2.Classname,s3.Score from
> s1 join s3 on s1.Sno = s3.Sno
> join s2 on s2.Classid = s3.Classid;
8、查詢選修2號課程且成績在90分以上的所有學生。
>select s1.Sname,s3.Classid,s3.Score from
> s1 join s3 on s1.Sno = s3.Sno
> where s3.Classid = ‘2’ and s3.Score > 90;
9、查詢所有學生的信息,如果在成績表中有成績,則輸出成績表中的課程號
>select s1.,s3.Classid from
> s1 left outer join s3
> on s1.Sno = s3.Sno;
10、查詢與“劉晨”在同一個系學習的學生
>select S1.Sname,S1.Sdepartment from s1 left semi join
> (select Sdepartment from s1 where Sname = ‘劉晨’) tmp
> on s1.Sdepartment = tmp.Sdepartment;
總結
以上是生活随笔為你收集整理的Hive案例 学生成绩表综合案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pythonpdf教程_python基础
- 下一篇: .net简繁体转换