查询所有分都大于80分的学生姓名

数据表

namecourcescore
张三语文81
张三英语85
张三数学78
李四语文84
李四英语74
李四数学65
王五语文86
王五英语87
王五数学82

表的sql语句

SET FOREIGN_KEY_CHECKS=0  
-- ----------------------------  
-- Table structure for grade  
-- ----------------------------  
DROP TABLE IF EXISTS grade;  
CREATE TABLE grade (  
      name varchar(255) NOT NULL, 
     class varchar(255) NOT NULL, 
     score tinyint(4) NOT NULL 
   ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;   
   -- ---------------------------- 
    -- Records of grade 
    -- ---------------------------- 
INSERT INTO grade VALUES ('张三', '语文', '81'); 
INSERT INTO grade VALUES ('张三', '数学', '75'); 
INSERT INTO grade VALUES ('李四', '语文', '76'); 
INSERT INTO grade VALUES ('李四', '数学', '90'); 
INSERT INTO grade VALUES ('王五', '语文', '81'); 
INSERT INTO grade VALUES ('王五', '数学', '100');
INSERT INTO grade VALUES ('王五', '英语', '90'); 
SET FOREIGN_KEY_CHECKS=1;

1.查询出所有科目都大于80分学生的姓名

select distinct name 
from grade 
where name not in (select distinct name from grade where score<=80);

简单写法:

select name from grade group by name having min(score)>80;

2.查询平均分大于80分的学生

select name from ( 
    select count() t, sum(score) num, name from grade group by name   
) as a where a.num>80;

简单写法:

select name, avg(score) as sc from grade group by name having avg(score)>80;

github:https://github.com/liukai90/liukai90.github.io/blob/master/sql/查询所有课程都大于80分的学生姓名.md

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值