当前位置: 代码迷 >> Sql Server >> mysql分组并排序解决思路
  详细解决方案

mysql分组并排序解决思路

热度:67   发布时间:2016-04-27 12:22:45.0
mysql分组并排序
做一个统计。比如某学校的学生成绩。当我将年级分组后对每个班的总成绩排名次。将这个统计结果插入一个新表。求解分组后如何排名次。如: 
初一 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)*/
  相关解决方案