求一条sql语句,按照成绩降序排序,并显示名次,如123

成绩表中有成绩id 学生id 分数三个字段。 我不知道按成绩排名该怎样做, 怎样显示,又不能根据id来做

SELECT

    id,

    read_total,

(

        SELECT

            COUNT(read_total)

        FROM

            t_circle_topic

        WHERE

            ct.read_total <= read_total

    ) AS rank

FROM

    t_circle_topic AS ct

ORDER BY

    read_total DESC

扩展资料

ORDER BY 语句用于对结果集进行排序。

ORDER BY 语句用于根据指定的列对结果集进行排序。

ORDER BY 语句默认按照升序对记录进行排序。

如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

在以上的结果中有两个相等的公司名称 (W3School)。只有这一次,在第一列中有相同的值时,第二列是以升序排列的。如果第一列中有些值为 nulls 时,情况也是这样的。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
select row_number over( order by a.分数 desc) as 名次,a.学生id,a.分数 from 成绩表 a order by a.分数 desc
这样就可以了,把相应字段和表替换下追问

我用的是mysql数据库啊,row_number 和over是什么啊

本回答被提问者采纳
第2个回答  2012-08-17
可以写个g过程或者函数,zhe'yan这样比较简单些,若是oracle可以用游标。
第3个回答  2012-08-18
select * from (表名) order by (分数的字段名) desc(降序);

求一条sql语句,按照成绩降序排序,并显示名次,如123
SELECT id,read_total,(SELECT COUNT(read_total)FROM t_circle_topic WHERE ct.read_total <= read_total ) AS rank FROM t_circle_topic AS ct ORDER BY read_total DESC

sql 语句排序 在查询结果中按人数降序排列,若人数相同,则按课程号升...
代码如下:select xuehao as 学号,score as 总成绩 from CJBwhere xuehao in(select xuehao from XSB)group by xuehao,score order by score desc,xuehao select id as 学号, sum(score) as 总成绩 from 成绩表 group by id order by sum(score) desc, id asc ...

sql 升序降序排列
ORDER BY cpbh DESC;这里,`DESC`关键字指示结果应按'cpbh'字段的值从大到小排列。相反,如果你想进行升序排列,也就是按照'cpbh'字段的值从小到大,只需将`DESC`替换为`asc`,如下所示:sql SELECT * FROM kc ORDER BY cpbh ASC;这样,查询结果就会按照'cpbh'字段的值递增顺序返回数据。无...

编写sql 降序排列score
1、SQL排序是使用【Order by】字语句实现的 2、排序时【Desc】是降序,【Asc】是升序 示例:假设表【TableTemp】中有两个列,分别为【AID】和【BID】,都是【int】类型 1、按【AID】降序排列 select * from TableTemp order by AID desc2、按【AID】升序排列 select * from TableTemp order by...

降序排序sql语句
你好很高兴回答你的问题。对应的sql语句大概如下:select * from 表名 order by 用于排序的字段 desc desc是降序,如果要用升序是asc 如果有帮助到你,请点击采纳

sql 升序降序排列
sql可以根据字段进行排序,其中,DESC表示降序,ASC表示升序 orderby字段名 DESC;按照字段名降序排序 orderby字段名ASC;按照字段名升序排序 实例: 一、\/*查询学生表中姓名、学号,并以学号降序排序*\/ selectname,StuIDfromStudents_informationorderbyStuIDdesc \/**orderby以什么排序,默认为升序,desc是降序*\/ 二、\/*查询...

我想用sql来实现排行榜,请问怎么写sql语句?具体情况见问题补充。谢谢帮...
select ID,user,sum(input) as 'total_input' from user_tblgroup by ID,userorder by 3 descasc是升序,desc为降序

如何用sql语句排序一个倒一个顺?
例如,按学生学号升序排列,学生成绩按降序排列\\x0d\\x0asql是这样写的:select * from tab order by id,scroe desc\\x0d\\x0asql server会根据order by跟id scroe 先后进行排序,\\x0d\\x0a先根据id升序排序,再根据scroe降序排序,也许你会发现scroe列的数据不是按照降序排列\\x0d\\x0a这...

如何用一条sql语句查询每位学生的前一名和后一名?
要用一条SQL语句查询每位学生的前一名和后一名,可以使用MySQL的窗口函数(Window Function)来实现。以下是一条示例的SQL语句:SELECT StudentID,Score,LAG(StudentID) OVER (ORDER BY Score DESC) AS PreviousStudentID,LEAD(StudentID) OVER (ORDER BY Score DESC) AS NextStudentID FROM Students OR...

按照身高从高到低对学生排序sql语句
select * from table-name order by hight desc select * from table-name where defin order by hight desc table-name : 表名 defin: 条件 desc: 降序

相似回答