一个sql语句的编写问题 select * , 区域排名 = (select count(1) from tb where 地区 = t.地区 and 数量 > t.数量) + 1 from tb t order by 地区,区域排名 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create table tb(地区 varchar(10) , 数量 int)insert into tb values('北京' ,1000) insert into tb values('北京' ,900 )insert into tb values('北京' ,1200) insert into tb values('上海' ,1500) insert into tb values('上海' ,2500) insert into tb values('上海' ,500 )insert into tb values('广州' ,2000) insert into tb values('广州' ,1200)goselect * , 区域排名 = (select count(1) from tb where 地区 = t.地区 and 数量 > t.数量) + 1 from tb t order by 地区,区域排名drop table tb /*地区 数量 区域排名 ---------- ----------- ----------- 北京 1200 1北京 1000 2北京 900 3广州 2000 1广州 1200 2上海 2500 1上海 1500 2上海 500 3(所影响的行数为 8 行)*/ --如果是sql 2005select * , 区域排名 = row_number() over(partition by 地区 order by 数量 desc) from tb SQL2008 存储过程 传入起始日期,终止日期.返回一个由日期天的个位数组成的数组 关于count的简单问题,高分相送 关于索引的问题!!! 关于循环写数据的问题 求一递归算法 SQL 性能问题 sql语句树形结构 MS-SQL SERVER2000个人版 VFP如何直接向打印机输出文本? sql server中有没有与nolock关键字意思相反的关键字 sql触发器问题 如何给表添加IDENTITY
insert into tb values('北京' ,1000)
insert into tb values('北京' ,900 )
insert into tb values('北京' ,1200)
insert into tb values('上海' ,1500)
insert into tb values('上海' ,2500)
insert into tb values('上海' ,500 )
insert into tb values('广州' ,2000)
insert into tb values('广州' ,1200)
goselect * , 区域排名 = (select count(1) from tb where 地区 = t.地区 and 数量 > t.数量) + 1 from tb t order by 地区,区域排名drop table tb /*
地区 数量 区域排名
---------- ----------- -----------
北京 1200 1
北京 1000 2
北京 900 3
广州 2000 1
广州 1200 2
上海 2500 1
上海 1500 2
上海 500 3(所影响的行数为 8 行)
*/
select * , 区域排名 = row_number() over(partition by 地区 order by 数量 desc) from tb