Ⅰ 怎么用sql语句查找学生的成绩排名
工具/材料:以Management Studio为例。
1、首先在桌面上,点击“Management Studio”图标。
Ⅱ Access SQL语言怎么选择每个班级的前五名分数
在access中不好做,你将数据导出到Excel中,然后插入数据透视表,就会轻松搞定。
Ⅲ 取每个班前5名成绩的sql怎么写
--单纯通过top是不行的,要用到row_number()over()才能取到每个班的分别的前5名
select*from(selectt.*,row_number()over(partitionby班级orderby成绩desc)asfnumfrom表名T)t1wherefnum<=5
Ⅳ 用SQL列出数据库成绩的前五名学生的学号、姓名、成绩
一楼的:
select student.学号,姓名,成绩 FROM STUDENT,SCORE WHERE STUDENT.学号=SCORE.学号 ORDER BY 成绩 DESC TOP 5 (本语句适合二级) 追问(急!!!)找出各科成绩均在85分以上(含)的学生的学号、姓名 这个呢? 回答完就给分^-^
回答追问的:
select student.学号,姓名,min(成绩) 最低分,max(成绩) 最高分 FROM STUDENT,SCORE
WHERE STUDENT.学号=SCORE.学号
group by student.学号,姓名
having min(成绩)>=85
Ⅳ sql 语句查询 前5名后5名的成绩
不知道你的是什么数据库,我用oracle的写法了。
两种办法:
分别求最大和最小,然后union all
select * from(select* from table order by 成绩) where rownum<=5
union all
select * from(select* from table order by 成绩 desc) where rownum<=5
利用排序,找到每个人的位置,然后输出。排序的方法很多,可以用rownum排序,也可以用row_number()over()排序
我用row_number()over()写一个
selecta.姓名,a.成绩 from
(select row_number()over(order by 成绩) num,姓名,成绩 from table) a where a.num<=5 or
a.num>=(select count(*)-5 from table)
我没实验,不过就算有问题也应该不大。
sqlserver的版本是啥?是2005以上么?如果是
那么利用那个row_number的应该也可以,不过为了让分数一样的人都出来,那么最好改为
这种情况是假设前五出现分数相同的话,假如前五名有六个人的情况,不过我没有输出名次,另外我上面的那种写法也可以试试,sqlserver好像也可以。
不过如果你要是sql2005以前的版本那时sqlserver还没有这几个开窗函数,那就稍微有点麻烦了。
select姓名,成绩 from
select rank()over(order by 成绩) num,rank()over(order by 成绩 desc) num_desc,姓名,成绩 from table) a where a.num<=5 or a.num_desc<=5 order by 成绩 desc
Ⅵ SQL语句:十个班里各取前五名
--创建测试数据
declare @t table(ID int,xm varchar(20),total int,banji varchar(50))
insert @t
select 1,'张一',100,'A班' union all
select 2,'张二',200,'A班' union all
select 3,'张三',300,'A班' union all
select 4,'张四',400,'A班' union all
select 5,'张五',500,'B班' union all
select 6,'张六',600,'B班' union all
select 7,'张七',700,'B班' union all
select 8,'张八',800,'B班' union all
select 9,'张九',900,'C班' union all
select 10,'张十',1000,'C班' union all
select 11,'张十一',1100,'C班' union all
select 12,'张十二',1200,'C班'
--查询
select * from @t a
where (select count(*) from @t b where b.banji = a.banji and b.total > a.total) < 3
--这里是前三名,前五名只需把这里的<3改为<5即可
--结果
/*
ID xm total banji
---------------------------------------------
2 张二 200 A班
3 张三 300 A班
4 张四 400 A班
6 张六 600 B班
7 张七 700 B班
8 张八 800 B班
10 张十 1000 C班
11 张十一 1100 C班
12 张十二 1200 C班
*/
Ⅶ 用SQL语言查询班上前5名学生成绩
SELECT TOP 5 * FROM 表 ORDER BY 成绩 DESC;
Ⅷ sql 分组查询前5的记录
用GROUP BY查询。select Top 5 班级,学号,分数 From 学生表group by 班级,学号,分数
________________________Top 5表示头5行数据。也可以用百分百表示 如果你的表中有100行数据,要查5行,则用select top 5percent 班级,学号,分数
from 学生表group by 班级,学号,分数
Ⅸ 用SQL命令查询数据库这门课排名前5的同学的学号和成绩若成绩相同按学号升序排列
sql server:
select top 5 学号,成绩
from 成绩表
where 课程名=‘数据库’
order by 成绩 desc,学号
oracle :
select 学号,成绩
from 成绩表
where 课程名=‘数据库’and rownum<=5
order by 成绩 desc,学号
Ⅹ 用sql语句,查询每个班级成绩排名前三名的学生姓名
1、首先在打开的SQLServer中,假设有两条数据中,包含有【张】,但是这个张一前一后,如下图所示。