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
 )
相关推荐
m0_613856293 小时前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
Adios7943 小时前
VPR:Pitts50K和Norland数据集下载
数据库
东风破1373 小时前
DM用户权限、表、约束等对象的基本操作,SQL日志的开启介绍
数据库·sql·dm达梦数据库
abcnull3 小时前
用javaparser做精准测试
java·ast·静态代码分析·精准测试·javaparser
叶小鸡3 小时前
Java 篇-项目实战-苍穹外卖-笔记汇总
java·开发语言·笔记
收获不止数据库3 小时前
达梦9发布会归来:AI 时代,我们需要一款什么样的数据库?
数据库·人工智能·ai·语言模型·数据分析
AI人工智能+电脑小能手3 小时前
【大白话说Java面试题】【Java基础篇】第22题:HashMap 和 HashSet 有哪些区别
java·开发语言·哈希算法·散列表·hash
小宇的天下4 小时前
Virtuoso GUI 界面中的关键模块定义
数据库
bqq198610264 小时前
MySQL 5.7 与 MySQL 8.0 的主要区别
数据库·mysql
juniperhan4 小时前
Flink 系列第21篇:Flink SQL 函数与 UDF 全解读:类型推导、开发要点与 Module 扩展
java·大数据·数据仓库·分布式·sql·flink