做一个统计。比如某学校的学生成绩。当我将年级分组后对每个班的总成绩排名次。将这个统计结果插入一个新表。求解分组后如何排名次。如:
初一 3班 465 1
初一 1班 455 2
初一 2班 444 3
初二 4班 524 1
初二 3班 475 2
初二 1班 455 3
初二 2班 444 4
没什么分,真心求教。
------解决方案--------------------
- SQL code
create table fan(年级 varchar(6),班级 varchar(6),总成绩 int)insert into fanselect '初一', '3班', 465 union allselect '初一', '1班', 455 union allselect '初一', '2班', 444 union allselect '初二', '4班', 524 union allselect '初二', '3班', 475 union allselect '初二', '1班', 455 union allselect '初二', '2班', 444select 年级,班级,总成绩,row_number() over(partition by 年级 order by 总成绩 desc) '名次'from fanorder by 年级 desc/*年级 班级 总成绩 名次------ ------ ----------- --------------------初一 3班 465 1初一 1班 455 2初一 2班 444 3初二 4班 524 1初二 3班 475 2初二 1班 455 3初二 2班 444 4(7 row(s) affected)*/