用一条 SQL 语句查询出每门课都大于 80 分的学生姓名

本文介绍了一种SQL技巧,用于从学生分数记录中筛选出所有科目分数均不低于80分的学生名单。通过巧妙运用子查询和NOT IN操作符实现,适用于教育机构的数据分析场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RT

name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
准备数据的 sql 代码:
create table score(id int primary key auto_increment,name varchar(20),subject
varchar(20),score int);
insert into score values
(null,'张三','语文',81),
(null,'张三','数学',75),
(null,'李四','语文',76),
(null,'李四','数学',90),
(null,'王五','语文',81),
(null,'王五','数学',100),
(null,'王五 ','英语',90);

当百思不得其解时,请逆向思维试试,把小变成大做,把大变成小做。

答案:

SELECT distinct s1.name FROM  score s1 WHERE s1.name NOT IN (SELECT  DISTINCT  s.name FROM  score s WHERE s.score < 80);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值