首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL分组语句不熟练,搞排名偶不会解决方法

2012-04-28 
SQL分组语句不熟练,搞排名偶不会一个表里面有四个属性:试卷id,学号,成绩,排名试卷id和学号是主键,排名属性

SQL分组语句不熟练,搞排名偶不会
一个表里面有四个属性:试卷id,学号,成绩,排名
试卷id和学号是主键,排名属性可以不要,如果在用select语句取表数据的时候能顺便带上排名列的话
排名是按照试卷id分类排名的啊,也就是一份试卷为一组,按成绩排名。
麻烦说详细些啊,多谢。

[解决办法]

SQL code
DECLARE @table TABLE([试卷ID] int,[学号] int,[成绩] INT)INSERT INTO @tableSELECT 1,1,89 UNION ALLSELECT 1,2,90 UNION ALLSELECT 1,3,70 UNION ALLSELECT 1,4,56 UNION ALLSELECT 1,5,56 UNION ALLSELECT 1,6,84 UNION ALLSELECT 2,1,81 UNION ALLSELECT 2,2,86 UNION ALLSELECT 2,3,98 UNION ALLSELECT 2,4,93 UNION ALLSELECT 2,5,89 UNION ALLSELECT 2,6,88 --密集排名SELECT  *,[排名]=DENSE_RANK() OVER(PARTITION BY [试卷ID] ORDER BY 成绩) FROM  @table/*试卷ID        学号          成绩          排名----------- ----------- ----------- --------------------1           4           56          11           5           56          11           3           70          21           6           84          31           1           89          41           2           90          52           1           81          12           2           86          22           6           88          32           5           89          42           4           93          52           3           98          6(12 行受影响)*/--排名SELECT  *,[排名]=RANK() OVER(PARTITION BY [试卷ID] ORDER BY 成绩) FROM  @table 

热点排行