sql题目练习-子查询

题目:

假设有 students 表,字段有 student_id(学生编号,主键),student_name(学生姓名),class_id(班级编号),score(成绩);

以及 classes 表,字段有 class_id(班级编号,主键),class_name(班级名称)。

编写 SQL 查询成绩高于所在班级平均成绩的学生姓名、成绩和班级名称
解答:

通过连接 students 表和 classes 表,并使用子查询计算每个班级的平均成绩,然后在主查询中筛选出成绩高于所在班级平均成绩的学生信息。

sql 复制代码
select s.student_name,c.class_name,s.score
from students s
join  classes c on s.class_id=c.class_id
where s.score>(
 select avg(score) as avg_score
 from students
 group by class_id
 having class_id=s.class_id
 )
相关推荐
海南java第二人14 小时前
Nebula Graph 实战:基于图数据库存储 CMDB 实体关系
数据库·图数据库·nebula
wang090714 小时前
自己动手写一个spring之IOC_2
java·后端·spring
来杯@Java14 小时前
学生选课管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·maven·mybatis
曹牧14 小时前
oracle:“not all variables bound”
数据库·oracle
数据库百宝箱14 小时前
Oracle RMAN Image Copy 本地恢复
数据库·oracle
不知名的老吴15 小时前
线程的生命周期之线程“插队“
java·开发语言·python
ANnianStriver15 小时前
PetLumina-02-后端开发与前后端联调
java·ai·sa-token
zuYM4g7Dp15 小时前
NoSql数据库设计心得
数据库·nosql
杨了个杨898216 小时前
Keepalived + Nginx + HAProxy 高可用架构部署实战案例
java·nginx·架构