MySQL练习题50道:查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩
MySQL练习题50道:查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩
MySQL练习题50道:查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩
背景
题目描述
查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩
答案
| s_id | s_name | s_brith | s_sex | avg_score |
|---|---|---|---|---|
| 04 | 李云 | 1990-08-06 | 男 | 33.3333 |
| 06 | 吴兰 | 1992-03-01 | 女 | 32.5000 |
| 08 | 王菊 | 1990-01-20 | 女 | 0.0000 |
解题思路
1 | select stu.*, avg(s_score) as avg_score |
但是这里有一个问题,查看学生表和成绩表会发现,编号为08的学生没有参与考试,所以应该记为0分。在连接的时候,会缺少这个数据,所以要加一个非空判断,下边这个sql才是正确的。
1 | select stu.*, IFNULL(avg(s_score),0) as avg_score |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小鱼吃猫!

