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
 )
相关推荐
D***776518 分钟前
适用于IntelliJ IDEA 2024.1.2部署Tomcat的完整方法,以及笔者踩的坑,避免高血压,保姆级教程
java·tomcat·intellij-idea
20岁30年经验的码农21 分钟前
Spring Security 6.x 安全实践指南
java
胖咕噜的稞达鸭1 小时前
自定义shell命令行解释器自制
java·开发语言
草莓熊Lotso1 小时前
Git 分支管理:从基础操作到协作流程(本地篇)
大数据·服务器·开发语言·c++·人工智能·git·sql
@游子1 小时前
SQL注入语法和介绍(一)
数据库·oracle
蒋士峰DBA修行之路4 小时前
实验十三 WDR诊断报告
数据库
q***33374 小时前
oracle 12c查看执行过的sql及当前正在执行的sql
java·sql·oracle
杂亿稿4 小时前
数据库的约束
数据库
u***32434 小时前
使用python进行PostgreSQL 数据库连接
数据库·python·postgresql
Codingwiz_Joy4 小时前
Day44 盲注、报错注入 & 实战复现
数据库·安全性测试