008、【上海悠悠】sql面试题_2,学生表、成绩表
参考资料:
1、https://www.cnblogs.com/yoyoketang/p/10071410.html
接着上一篇继续学生表SQL
- 1.计算每个人的平均成绩, 要求显示字段: 学号,姓名,平均成绩
- 2.计算每个人的成绩,总分数,平均分,要求显示:学号,姓名,语文,数学,英语,总分,平均分
- 3.列出各门课程的平均成绩,要求显示字段:课程,平均成绩
- 4.列出数学成绩的排名, 要求显示字段:学号,姓名,成绩,排名
###################### sql面试2 ######################### # 1.计算每个人的平均成绩, 要求显示字段: 学号,姓名,平均成绩 # 2.计算每个人的成绩,总分数,平均分,要求显示:学号,姓名,语文,数学,英语,总分,平均分 # 3.列出各门课程的平均成绩,要求显示字段:课程,平均成绩 # 4.列出数学成绩的排名, 要求显示字段:学号,姓名,成绩,排名 # 1.计算每个人的平均成绩, 要求显示字段: 学号,姓名,平均成绩 select s.id,s.name,avg(g.score) from student s join grade g on s.id=g.id group by s.id; # 2.计算每个人的成绩,总分数,平均分,要求显示:学号,姓名,语文,数学,英语,总分,平均分 # 为什么加sum没搞懂 select s.id, s.name, sum(g.score), avg(g.score), sum(case when g.kemu='语文' then score else 0 end) as 语文, sum(case when g.kemu='数学' then score else 0 end) as 数学, sum(case when g.kemu='英语' then score else 0 end) as 英语 from student s join grade g on s.id=g.id group by s.id; # 3.列出各门课程的平均成绩,要求显示字段:课程,平均成绩 select g.kemu, avg(g.score) from grade g group by g.kemu; # 4.列出数学成绩的排名, 要求显示字段:学号,姓名,成绩,排名 # 答案看不懂