当前位置:Gxlcms > 数据库问题 > 用一条SQL语句查出每门课都大于80分的学生的姓名

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

时间:2021-07-01 10:21:17 帮助过:33人阅读

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;

 

查询每门课都大于80分的同学的姓名:

SELECT DISTINCT name FROM grade WHERE name NOT IN(SELECT DISTINCT name FROM grade WHERE score <=80);

 

查询平均分大于80的学生的姓名:

SELECT name FROM (SELECT COUNT(*) AS t,SUM(score) AS num,name FROM `grade` GROUP BY name) AS a WHERE a.num > 80*t;

 

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

标签:str   utf8mb4   大于   ade   where   name   group   drop   core   

人气教程排行