用SQL语句查询每门成绩都大于80的学生姓名? 新手求教。。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用SQL语句查询每门成绩都大于80的学生姓名? 新手求教。。相关的知识,希望对你有一定的参考价值。
表名stu 结构如下
name km fs
张三 语文 81
张三 数学 75
李四 语文 76
王五 英语 90
李四 数学 90
王五 语文 81
王五 数学 99
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 field1,field2 [desc]
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1[separator]
参考技术A select name from stu group by name having min(fs)>=80本回答被提问者和网友采纳 参考技术B select namefrom stu t1
where not exists(select 1 from tab where name = t1.name and fs < 80) 参考技术C select distinct a.name
from (select name, km, fs, count(*) over(partition by name) as num
from stu) a,
(select name, count(*) num from stu where fs > 80 group by name) b
where a.num = b.num
and a.name = b.name; 参考技术D select distinct name from stu where name not in(select name from stu where fs<80)
用sql语句,查询每个班级成绩排名前三名的学生姓名
1、首先在打开的SQL Server中,假设有两条数据中,包含有【张】,但是这个张一前一后,如下图所示。
2、此时就能利用Select和From语句,查询数据,如下图所示。
3、但是要查找姓名中包含有【张】,那么不能用等号,如下图所示。
4、因此一定要必须使用Like关键字,才能查询SQL的数据。
5、这个时候,如果单对【张】字后加个百分号是不允许的,这样只能查找姓张的数据。
6、如果想要前后都有关键字【张】,那么一定要在前后都加百分号,就能实现模糊查找姓名。
参考技术A 你的数据结构是怎么样的呢?是否已经计算了总分
假设已经计算了总分
前三名所有记录 列可以自定义 (列出前3名成绩总分 3种主流数据库写法)
sqlserver数据库:
select top 3 from 成绩表 order by 总分 desc
mysql数据库:
select * from 成绩表 order by desc 总分 desc limit 3
oracle数据库:
select * from 成绩表 order by desc 总分 ROWNUM <= 3
如果说没有给出总分
需要先计算总分
select (语文+数学+。。。)as total top 3 from 成绩表 order by total desc
然后其他数据库自己灵活运用你自己所使用的数据库的上述方法追问
在Oracle中,本题是先把班级分组还是先按成绩排序
追答先分组分组 然后再排序
参考技术B select top 3 * from 成绩 group by 班级 order by 成绩 参考技术C 思路是先分组后按成绩排序以上是关于用SQL语句查询每门成绩都大于80的学生姓名? 新手求教。。的主要内容,如果未能解决你的问题,请参考以下文章
InterviewQuestion_SQLServer_Probl_查询每门课都大于80分的学生姓名