查询每门课程成绩都大于80分学生的学号

1 查询每门课程成绩都大于80分学生的学号 
数据库 表 student
name score course
A 85  语文
A 75  数学
A 82  英语
B   75  语文
B   89  数学
B   79  英语
天使美眉90 语文
天使美眉100 数学
天使美眉100 英语

请找出每门课程都超过80分的那个人名字的SQL语句

SQL1:

select name from test.stu
group by name
having count(score) =sum(case  when score>80 then 1 else 0 end )

SQL2:

select name from stu
group by name
having name not in (
select name from stu
where score <80)

SQL3:

select name from test.stu
group by name
having min(score)>=80

 

select distinct name from student  where  name not in (select distinct name from student where fengshu<=80)

group by与distinct 区别

select name from student
group by name

等价于

select distinct name from student

但是group by效率更高都是以group by name后面的列名来分组只是后面的判定要和having连用

转载于:https://www.cnblogs.com/niuxi/p/5805205.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值