为了账号安全,请及时绑定邮箱和手机立即绑定

请问该怎样用一条sql 查出表(table)中 每科成绩高于80的 人的名字?

请问该怎样用一条sql 查出表(table)中 每科成绩高于80的 人的名字?

眼眸繁星 2022-04-07 11:07:50
怎样用一条sql 查出表(table)中 每科成绩高于80的 人的名字name subject mark张三 数学 81张三 语文 77李四 数学 80李四 语文 88王五 数学 86王五 语文 88王五 英文 99select name from ss Group by name having min(mark)>80;这句话为什么查出的是2个人
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

 这样试试:


select distinct name from table awhere not exists (select from where b.name = a.name and b.mark <= 80)andname in (select name from table group by name having count(1) = 3)


查看完整回答
反对 回复 2022-04-11
?
临摹微笑

TA贡献1982条经验 获得超2个赞

select name
from
(
select name,mark=min(mark)
from table
group by name
) a
where mark>80

 


查看完整回答
反对 回复 2022-04-11
?
桃花长相依

TA贡献1860条经验 获得超8个赞

create table student(name varchar(10),kecheng varchar (10),fenshu int)insert into student values('张三','语文',81);insert into student values('张三','数学',74);insert into student values('李四','语文',76);insert into student values('李四','数学',90);insert into student values('王五','语文',81);insert into student values('王五','数学',100);insert into student values('王五','英语',90); select name from student group by name having min(fenshu) >= 80;

最重要的是最后一条  比较简洁。能展示所有每科分数都大于80 的学生。表名根据需要自己更改。  就是一句的话太长,容易出错。亲测  mysql 运行没毛病建表嫌麻烦可以


insert into student values('张三''语文',81),('张三''数学',74),('李四''语文',76),('李四''数学',90),('王五''语文',81),('王五''数学',100),('王五''英语',90);



查看完整回答
反对 回复 2022-04-11
  • 3 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号