
正文
sqlserver总分名次,sql实现分数排名
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用sql语句,查询每个班级成绩排名前三名的学生姓名
1、sql语句是这样的 select count(*) from student where class=601 and score(select score from student where name=张三)这个就求出了在601班的张三前有多少个人,他的名就是这个返回值+1,这个问题不关排序鸟事。
2、打开数据库软件,附加数据库,右键选择新建查询。用sql语句输出班级名称,附加项平均分,命令为select 班级表.班级名称,avg(成绩)as 平均分。将学生表和班级表以班号关联,再将成绩表和学生表以学号关联。
3、工具/材料:以Management Studio为例。首先在桌面上,点击“Management Studio”图标。然后在该界面中,点击“新建查询”按钮。
相关问答
Q1: 分数一样的话排名怎么排,求详细的sql语句。
你好,你展示的第一种sql查询方案,其意思是:先根据score表中的sno分组求每个sno的最高分数。
直接写select语句是这样的:select * from [成绩单表] order by [分数] desc 最好用视图的可视化界面来做,添加要排序的表,选择要显示的字段,然后再排序条件后面选择一下升序降序就可以了。
select * from table_name order by fs desc;其中table_name是你的表名。order by fs是按照fs列进行排序,desc是倒序的意思,就是数字大的在上面。
这种情况是假设前五出现分数相同的话,假如前五名有六个人的情况,不过我没有输出名次,另外我上面的那种写法也可以试试,sqlserver好像也可以。不过如果你要是sql2005以前的版本那时sqlserver还没有这几个开窗函数,那就稍微有点麻烦了。
按分数排序,行数不就是名次了?SQL2005可以这样 SELECT * FROM (SELECT RANK() OVER(ORDER BY 成绩 DESC) AS 名次,* FROM 表)T WHERE ID=8 RANK是2005版本以后才有的,2000只能用临时表来解决了。
Q2: 用SQL语句排名次
1、sql 语句 并列排名的问题 10 要选出成绩前五名,但要考虑可能有多个同学并列第5名的问题._oska_ | 浏览4066 次 |举报 我有更好的答案推荐于2017-12-15 15:30:56 最佳答案 无论sqlserver 还是 oracle 用rank() 或者 dens_rank() 函数。
2、首先在桌面上,点击“Management Studio”图标。然后在该界面中,点击“新建查询”按钮。之后在该界面中,输入找出每个学生超过他选修课程平均成绩的课程号的SQL语句:selec t name,Cno from SCX WHERE grade = (selec t AVG(grade) from SCY WHERE SCX.Cno = SCY.Cno);。
3、排序采用ORDER BY语句:ORDER BY 语句用于根据指定的列对结果集进行排序。ORDER BY 语句默认按照升序对记录行排序。如果希望按照降序对记录进行排序,可以使用 DESC关键字。SQL有两种使用方式:一是联机交互使用,这种方式下的SQL实际上是作为自含型语言使用的。
关于sqlserver总分名次和sql实现分数排名的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






