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.列出数学成绩的排名, 要求显示字段:学号,姓名,成绩,排名
# 答案看不懂

 

posted @ 2021-10-13 00:39  空-山-新-雨  阅读(161)  评论(0编辑  收藏  举报