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);

 

提示:当百思不得其解时,请理想思维,把小变成大做,把大变成小做,

 

答案:
A: select distinct name from score  where  name not in (select distinct name from score where score<=80)

 

B:select distince name  from score t1 where 80< all (select t2.score from score t2 where t1.name=t2.name);

 

 

总结:A方法是反面求解 ,先找到分数有小于80的人,再取反。

            B方法是正面求解 ,注意all的用法。

相关文章:

  • 2021-10-20
  • 2022-12-23
  • 2021-07-21
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-14
  • 2021-07-24
相关资源
相似解决方案