【备战春招】第13天+MySQL刷题-02
2023/2/20 3:20:38
本文主要是介绍【备战春招】第13天+MySQL刷题-02,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
✔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分的学生 |
|
学生表:
分数表:
编程目标:查询平均成绩大于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语句将返回符合条件的学生姓名。
运行结果:
这篇关于【备战春招】第13天+MySQL刷题-02的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南
- 2024-12-07MySQL慢查询入门:快速掌握性能优化技巧
- 2024-12-07MySQL入门:新手必读的简单教程
- 2024-12-07MySQL入门:从零开始学习MySQL数据库
- 2024-12-07MySQL索引入门:新手快速掌握MySQL索引技巧
- 2024-12-06BinLog学习:MySQL数据库BinLog入门教程
- 2024-12-06Binlog学习:MySQL数据库的日志管理入门教程