继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【备战春招】第13天+MySQL刷题-02

只是为了好玩
关注TA
已关注
手记 110
粉丝 23
获赞 122
模块名
描述
课程名称
全能软件测试工程师
课程章节
MySQL刷题
打卡知识进程
知识进程:13 / 21
1.node.js初体验windows
2.commonjs-回顾ES6模块化
3.commonjs的语法介绍
4.commonjs和ES6 Module的区别
5.Bug分类
6.node.js和前端js的区别
7.左关联
8.聚合函数
9.【案例】统计上班时间
10.数据库的索引
11.索引的分类
12.查询数学成绩比语文成绩高的学生
13.查询平均成绩大于80分的学生
主讲老师
大周
学习开始时间
2023.02.18 20:11
学习结束时间
2023.02.18 20:41
总计时
30 min
课程收获/主要内容/编程目标
查询平均成绩大于80分的学生
学习感受/感想/领悟(心得)
我应该去工作。

学生表:

分数表:

编程目标:查询平均成绩大于80分的学生。
编程思路:
1)
a)对于分数表,按学生ID(student_id)对学生进行分组,并计算每个学生的平均成绩。
然后,HAVING子句将筛选出平均成绩大于80分的学生,
并将其 学生ID(student_id) 作为结果返回。
代码如下:

SELECT student_id
FROM score
GROUP BY student_id
HAVING AVG(score) > 80;

b)然后对于学生表,where 语句将筛选出 在 a)步骤算出来的结果集中的学生ID(id),
并将其名称(student_name)作为结果返回。
完整代码如下:

select student_name
from student
where id in 
(
SELECT student_id
FROM score
GROUP BY student_id
HAVING AVG(score) > 80
)

运行结果:

2)
分数表 包含学生ID(student_id)和成绩(score)两列,
学生表 包含学生ID(id)和学生姓名(student_name)两列,
可以使用以下SQL代码查询平均成绩大于80分的学生:

SELECT s.student_name
FROM score AS sc
INNER JOIN student AS s ON sc.student_id = s.id
GROUP BY s.id
HAVING AVG(sc.score) > 80;

该代码将通过INNER JOIN将分数表和学生表连接起来,
并按学生ID分组 计算平均成绩,
然后使用HAVING子句过滤出平均成绩大于80分的学生。
最后,SELECT语句将返回符合条件的学生姓名。
运行结果:

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP