做一个统计。比如某学校的学生成绩。当我将年级分组后对每个班的总成绩排名次。将这个统计结果插入一个新表。求解分组后如何排名次。如:
初一 3班 465 1
初一 1班 455 2
初一 2班 444 3
初二 4班 524 1
初二 3班 475 2
初二 1班 455 3
初二 2班 444 4
没什么分,真心求教。
初一 3班 465 1
初一 1班 455 2
初一 2班 444 3
初二 4班 524 1
初二 3班 475 2
初二 1班 455 3
初二 2班 444 4
没什么分,真心求教。
解决方案 »
- SQL表中怎么把表字段值拆分成两半呢?
- 如何限制log文件的增长
- 问个基础的SQL查询问题!!
- 做复制向导时遇到的问题,不太明白
- 关于sql2005的identity的问题,还请指教
- 可否把SQL SERVER的安装也打包进自己的程序安装中去?
- 安装问题!
- 关于数据类型自动编号的问题,在线等
- 在客户机上不装SQL客户端就不能添加ODBC数据源吗?
- ado的问题 ,为什么在安装有sql server的机器上 ado程序老是有‘eof或bof中有一个是真....'之类的问题
- 一个ERP统计sql问题,多表,查询数据可能在4万条左右,怎么查?
- Sql server2008,定义字段为nvarchar(max),但更新时出现大小限制错误
(select count(1) from tb where 年级=t.年级 and 总成绩>=t.总成绩) as 排名
from tb t
create table fan
(年级 varchar(6),班级 varchar(6),总成绩 int)insert into fan
select '初一', '3班', 465 union all
select '初一', '1班', 455 union all
select '初一', '2班', 444 union all
select '初二', '4班', 524 union all
select '初二', '3班', 475 union all
select '初二', '1班', 455 union all
select '初二', '2班', 444
select 年级,班级,总成绩,
row_number() over(partition by 年级 order by 总成绩 desc) '名次'
from fan
order 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)
*/