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

用一条sql语句查询出所有课程都大于80分的学生名单:

name cource score
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90

 1 SET FOREIGN_KEY_CHECKS=0;
 2
 3 -- ----------------------------
 4 -- Table structure for grade
 5 -- ----------------------------
 6 DROP TABLE IF EXISTS `grade`;
 7 CREATE TABLE `grade` (
 8   `name` varchar(255) NOT NULL,
 9   `class` varchar(255) NOT NULL,
10   `score` tinyint(4) NOT NULL
11 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
12
13 -- ----------------------------
14 -- Records of grade
15 -- ----------------------------
16 INSERT INTO `grade` VALUES (‘张三‘, ‘语文‘, ‘81‘);
17 INSERT INTO `grade` VALUES (‘张三‘, ‘数学‘, ‘75‘);
18 INSERT INTO `grade` VALUES (‘李四‘, ‘语文‘, ‘76‘);
19 INSERT INTO `grade` VALUES (‘李四‘, ‘数学‘, ‘90‘);
20 INSERT INTO `grade` VALUES (‘王五‘, ‘语文‘, ‘81‘);
21 INSERT INTO `grade` VALUES (‘王五‘, ‘数学‘, ‘100‘);
22 INSERT INTO `grade` VALUES (‘王五‘, ‘英语‘, ‘90‘);
23 SET FOREIGN_KEY_CHECKS=1;

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

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

还有一种简单的写法:

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

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

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

也有一种简单的写法:

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

时间: 2024-10-06 17:54:55

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

SQL查询出每门课都大于80 分的学生姓名

Course表如下: 查询出每门课都大于80 分的学生姓名有两种方法. 1.select  distinct name from Course where name not in (select distinct name from Course where score<=80) 2.select  name    from Course group by name having min(score)>80

InterviewQuestion_SQLServer_Probl_查询每门课都大于80分的学生姓名

题目:用一条SQL语句查询出每门课都大于80分的学生姓名. 最近面试C#开发工程师,碰到上面这个考数据库的题目,自己感觉有点难度,没有思路,现将找到的解决方案整理如下: 文件:SQLQuery1.sql /* 环境:Microsoft SQL Server 2012 工具: Microsoft SQL Server Management Studio 数据库: Interview 数据表: grade 详情: name class score 张三 语文 81 张三 数学 75 李四 语文 76

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

思路就是反过来想就简单了 最后一句这样写就意思明显 SELECT distinct name from (select  name from zzxxz where score<=80) select distinct name from zzxxz where name not in (select distinct name from zzxxz where score<=80)

用一条SQL语句 查询出每门课程都大于80分的学生姓名&quot; 的实现方式

建表: 1 create table Score( 2 name varchar(20), 3 course varchar(20), 4 score int) 5 6 go 7 8 insert Score 9 select 'HanMeimei','Chinese',81 union all 10 select 'HanMeimei','Mathematics',75 union all 11 select 'HanMeimei','History',81 union all 12 sele

用一条sql语句查询出“每门”课程都大于80分的学生姓名

Name chengji fengshu张三 数学 75张三 语文 81李四 数学 90李四 语文 76王五 数学 81王五 语文 100王五 英语 90 SQL Server: select distinct [Name] from [表] where [Name] not in ( select [Name] from [表] where [fengshu]<=80) 或者 select distinct name from A minus select name from A where

[关于SQL]查询成绩都大于80分的学生

1.用一条SQL语句 查询出每门课都大于80分的学生姓名name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90 CREATE TABLE [dbo].[chengji]( [name] [nvarchar](50) NULL, [kecheng] [nvarchar](50) NULL, [fenshu] [int] NULL ) ON [PRIMARY] GO INSERT [dbo].[chen

mysql(1)—— 详解一条sql语句的执行过程

SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上.同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL语句的底层实现不同罢了,但结果相同.这有点类似于java中接口的作用,一个接口可以有不同的实现类,不同的实现类对于接口中方法的实现方式可以不同,结果可以相同.这里SQL语言的作用就类似于java中的接口,数据库就类似于java中接口的实现类,SQL语句就类似于java接口中的方法.不同的是java中

详解一条sql语句的执行过程

SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上.同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL语句的底层实现不同罢了,但结果相同.这有点类似于java中接口的作用,一个接口可以有不同的实现类,不同的实现类对于接口中方法的实现方式可以不同,结果可以相同.这里SQL语言的作用就类似于java中的接口,数据库就类似于java中接口的实现类,SQL语句就类似于java接口中的方法.不同的是java中

数据库 将多条SQL语句查询的内容整合成为一个元组

1.情景再现 分类信息 住户 租户 快递 亲友访问 花苑 138 25 44 89 新城 34 150 78 34 以上的一张表中,假如要分别在两个住宅小区统计各类进出的人数,进出的类型可以分为是住户,租户,快递以及亲友访问四个类型. 但是实际的表设计中,住户以及租户是属于这个小区,可以直接统计出来,但是快递以及亲友访问则需要从进出记录查找. 换言之,就是表中的每个元组的数据是从多个表中查出来的,同时可能是用四条sql语句中查询出来的.使用如下表达: ①: select t.name as co