用一条SQL语句查出每门课都大于80分的学生的姓名
2018-03-22 17:37
411 查看
用一条SQL语句查出每门课都大于80分的学生的姓名,数据表结构如下:
建表SQL如下:
查询每门课都大于80分的同学的姓名:
建表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 c45d 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);更简单的:
SELECT name FROM grade GROUP BY name HAVING MIN(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;更简单的:
select name, avg(score) as sc from grade g1 group by name having avg(score)>80 ;
相关文章推荐
- 用一条SQL语句查出每门课都大于80分的学生的姓名
- 用一条SQL语句 查询出每门课都大于80分的学生姓名
- 用一条SQL语句 查询出每门课都大于80分的学生姓名
- 用一条sql语句查询出“每门”课程都大于80分的学生姓名
- 用一条SQL语句 查询出每门课都大于80分的学生姓名
- SQL用一条SQL语句 查询出每门课都大于80分的学生姓名
- 用一条SQL语句 查询出每门课程都大于80分的学生姓名" 的实现方式
- 面试题:用一条sql语句查询出“每门”课程都大于80分的学生姓名
- 面试题:用一条sql语句查询出“每门”课程都大于80分的学生姓名
- 用一条SQL语句 查询出每门课都大于80分的学生姓名
- sql语句:查询每门课大于80分的学生姓名
- 用一条 SQL 语句查询出每门课都大于 80 分的学生姓名
- sql语句 查询表中 每门课都大于80分的学生名称 根据以下三种 学习sql 中其他函数的使用
- 一个sql语句的编写 写出不及格门数大于等于2的学生的姓名和平均成绩
- sql学生表 班级学生表 查出所有班级学生大于90分的个数大于10的班级
- 查询每门课程成绩都大于80分学生的姓名
- 只有两个字段用一个sql语句查询出某个学生的姓名、成绩以及在表中的排名
- 一条sql语句查出多个表的数据
- 数据库表,3个字段,姓名,薪水,部门,用一条sql语句求每个部门薪水最高的人姓名
- 一个SQL查询出每门课程的成绩都大于80的学生姓名