侧边栏壁纸
博主头像
小鱼吃猫博客博主等级

你所热爱的,便是你的生活。

  • 累计撰写 114 篇文章
  • 累计创建 47 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

MySQL练习题50道:查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩

小鱼吃猫
2023-11-02 / 0 评论 / 0 点赞 / 37 阅读 / 1257 字

背景

MySQL经典练习题及答案,常用SQL语句练习50题

题目描述

查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩

答案

s_ids_names_briths_sexavg_score
04李云1990-08-0633.3333
06吴兰1992-03-0132.5000
08王菊1990-01-200.0000

解题思路

select stu.*, avg(s_score) as avg_score
from student stu
        left join score sc
                  on sc.s_id = stu.s_id
group by s_id
having avg(s_score) < 60;

但是这里有一个问题,查看学生表和成绩表会发现,编号为08的学生没有参与考试,所以应该记为0分。在连接的时候,会缺少这个数据,所以要加一个非空判断,下边这个sql才是正确的。

select stu.*, IFNULL(avg(s_score),0) as avg_score
from student stu
         left join score sc
                   on sc.s_id = stu.s_id
group by s_id
having IFNULL(avg(s_score),0) < 60;
0

评论区