✔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语句将返回符合条件的学生姓名。
运行结果: