求一sql语句(排名次)解决思路
求一sql语句(排名次)SQL code有一学生成绩表create table scores(SID INT NOT NULL,--学生编号CLASS_ID IN
求一sql语句(排名次)
SQL code有一学生成绩表create table scores(SID INT NOT NULL,--学生编号CLASS_ID INT ,--班级SCORE FLOAT,--分数classpank int ,--班内名次(默认值为NULL)............)
现在学生成绩表的信息已经录入(学生编号,班级编号,分数),但是classpank(班内名次)还是空的。
现在需要写个update语句,将每个学生在本班的名次得出来---
请问这个语句怎么写呢????
[解决办法]update scores set scores.classpank=t.classpank from scores,(select [SID],ROW_NUMBER() over( partition by CLASS_ID order by SCORE desc) as classpank from scores)t
where scores.[SID]=t.[SID];
[解决办法]忘加了个判断。
update scores set classpank =( select count(1) from scores where classpank>=1 )+1 where CLASS_ID in ( select CLASS_ID from scores SCORE = (select max(SCORE) from scores where classpank=="" ) )