Name chengji fengshu
张三 数学 75
张三 语文 81
李四 数学 90
李四 语文 76
王五 数学 81
王五 语文 100
王五 英语 90
首先需要进行分析:
要查询出每门课程都大于80分的学生姓名,因为一个学生有多门课程,所以会出现下面三种情况。
第一可能所有课程都大于80分。
第二可能有些课程大于80分,另外一些课程少于80分。
第三也可能所有课程都小于80分。
那么我们要查找出所有大于80分的课程的学生姓名,我们可以反向思考,找出课程小于80分(可以找出有一些课程小于80分,所有课程小于80分的学生)的学生姓名再排除这些学生剩余的就是所有课程都大于80分的学生姓名了。
分析完成后,进入数据图形化管理界面创建表并插入数据
--创建表aa
create table aa(
name varchar(10),
kecheng varchar(10),
fengshu int
)
--插入数据到表aa中
insert into aa values('张三','语文',81)
insert into aa values('张三','数学',75)
insert into aa values('李四','语文',76)
insert into aa values('李四','数学',90)
insert into aa values('王五','语文',81)
insert into aa values('王五','数学',100)
insert into aa values('王五','英语',90)
用一条SQL语句查询出每门课都大于80分的学生姓名
select distinct name from aa where name not in (select distinct name from aa where fengshu<=80)
结果如下图:
扩展资料:
除了用distinct还可以用not in 或者 not exists 实现
//not in
SELECT DISTINCT A.name FROM Student A WHERE A.name not in(SELECT Distinct S.name FROM Student S WHERE S.score <80);
//not exists
SELECT DISTINCT A.name From Student A where not exists (SELECT 1 From Student S Where S.score <80 AND S.name =A.name);
结果与前面正文一样。
一、问题分析:
每门课都大于80分,就是说学生最低分数要大于80分,我们直观看只有"王五"这个学生每门课分数都在80分以上。
二、解决思路:
这里需要用到聚合函数min(score),查询出最低分数大于80分的学生即可。使用了聚合函数,条件就需要使用having语句。
三、sql语句设计如下
1.查询姓名,最低分数。
2.这里只能查询出最低分数的那个人。需要改进,根据用户名分组(group by name),这样就能查询出每个人的最低分数。
3.查询出了每个人的最低分数,我们只需要得到最低分数大于80的学生。通过having语句来筛选。
4.我们得到了"王五"的信息,满足我们的要求,但是不是最终的需求,最终的需求是得到每门课大于80分的学生姓名。这样,我们需要再嵌套一个语句,只得到姓名。
最终SQL:select name from (select name,min(score) from student group by name having min(score)>80) stu
本回答被网友采纳用一条sql语句查询出每门课都大于80分的学生姓名
没有具体表,不同人设计的表结构不同,查询语句也不同。例:表名称为grade,结构如下 id 姓名 数学 语文 1 张三 30 20 2 李四 80 90 3 王五 90 70 查询语句为 select * from grade where 数学>80 and 语文>80
数据库题目,如何查询每一位学生的课程平均值? oracle数据库
1.用一条SQL 语句查询各位学生的平均成绩,并以平均成绩倒叙排序。2.用一条SQL 语句 查询出每门课都大于80 分的学生姓名。 展开 我来答 1个回答 #广告# 华为mate50系列的卫星通信如何使用?pieryon 2021-08-03 · 知道合伙人数码行家 pieryon 知道合伙人数码行家 采纳数:14400 获赞数:166327 ...
用一条sql语句查询出“每门”课程都大于80分的学生姓名
insert into aa values('王五','英语',90)用一条SQL语句查询出每门课都大于80分的学生姓名 select distinct name from aa where name not in (select distinct name from aa where fengshu<=80)结果如下图:
用SQL查询出每门成绩都大于80分的学生姓名
fenshu<=80 group by name having count(*)>=1) group by name 先查到任何一门不足80的学生,再排除这些学生。select name from stu group by name having min(fs)>=80。还有这些简单语句。简单基本的sql语句 更新:update table1 set field1=value1 where 范围 查找:select * from table1 ...
用SQL语句查询每门成绩都大于80的学生姓名? 新手求教。。
select name from stu group by name having min(fs)>=80。还有这些简单语句。简单基本的sql语句 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)排序:select * from table1 order by ...
用sql代码查询课程成绩大于80分的所有学生成绩
在进行数据库查询时,使用SQL语句能够高效地获取所需数据。例如,当我们想要查询所有课程成绩超过80分的学生时,可以采用以下SQL代码:SELECT ID, 学生姓名, 成绩 FROM 表名 WHERE 成绩 > 80。这条语句的具体含义是,从名为“表名”的数据库表中筛选出成绩大于80分的记录,并显示学生的ID、姓名和成绩...
如何在SQL中查找平均分大于80的学生信息?
首先,假设我们有一个名为"students"的表,其中包含学生的ID、姓名和成绩等信息。我们可以使用SQL语句来查询平均分大于80分的学生。具体来说,我们可以使用SELECT语句来选择需要查询的列,然后使用FROM子句指定要查询的表,接着使用WHERE子句来筛选出平均分大于80分的学生。其次,为了计算学生的平均分,我们...
如何在SQL server中查询成绩大于80的学生记录集?
FROM student GROUP BY id HAVING AVG(score)>=80;在这里,如果用WHERE代替HAVING就会出错。数据操纵 数据操纵语言是完成数据操作的命令,一般分为两种类型的数据操纵。1、数据检索(常称为查询):寻找所需的具体数据。2、数据修改:插入、删除和更新数据。数据操纵语言一般由 INSERT(插入)、 DELETE(删除...
...平均成绩大于80分的课程的名字和学分.SQL语句查询,跪求高人指点!我...
根据提示来改,在GROUP BY后面加上Credit就OK 了 SELECT Cname 课程名, Credit FROM SC JOIN Course ON SC.Cno = Course.Cno GROUP BY Cname , Credit HAVING AVG(grade)> 80
平均成绩大于80分的学生的学号姓名和平均成绩
查询平均成绩大于80分的学生的姓名、课程和成绩 打开软件SQL Server 2005,如图,附加示例数据库,如图,将示例数据库放在桌面上,如图,附加数据库,然后点击“确定”,“确定”然后在数据库中就会出现一个新的数据库,然后打开“新建查询”,注意在用红色线圈起来的地方,必须是你需要打开数据库的名字,...