表csrank
现在有字段
Username, updatetime,kills,teamkills,deaths,hits,shots,headshots,bodyparts1,bodyparts2,bodyparts3,bodyparts4,bodyparts5,bodyparts6,bodyparts7
比如现在库中有100个用户,kills这个字段是杀敌数量,以这个最多的开始排列,倒序排列数据库中有一个叫test的人,他的kills=1000,其他人的任意的数值现在要查询test在这些人中是排在kills杀敌数量的第几位,就是想获取他的排行位置应该如何写呢?
现在有字段
Username, updatetime,kills,teamkills,deaths,hits,shots,headshots,bodyparts1,bodyparts2,bodyparts3,bodyparts4,bodyparts5,bodyparts6,bodyparts7
比如现在库中有100个用户,kills这个字段是杀敌数量,以这个最多的开始排列,倒序排列数据库中有一个叫test的人,他的kills=1000,其他人的任意的数值现在要查询test在这些人中是排在kills杀敌数量的第几位,就是想获取他的排行位置应该如何写呢?
解决方案 »
- 事务向两个表里保存数据,表触发器的执行.
- 问一sql语句!!请大家看下,在线等!!!
- 数据库新手,不知道该导出为什么格式
- 同时执行一个存储过程和查询语句,存储过程语句在前,输出的是存储过程的PRINT结果,我要查询结果
- JDBC:Error reading data from static cursor cache 错误 给个解决方法吧
- 存储过程数据更新问题!!
- 找出用'a'或'b'开头的用'[ab]_',那如果要找出用'11','12'或'31'开头的呢?
- SQL错误日志,是什么意思?
- 如何添加用户
- 存儲過程是否可以返回一個表?
- 当mssql数据库链接意外断开时,该如何报警啊。
- 数据库中主键如何实现随日期自动增长
rnk=(SELECT COUNT(*)
FROM srank
WHERE kills>=s.kills)
FROM srank AS s;--2005SELECT *,
rnk=DENSE_RANK() OVER(ORDER BY kills)
FROM srank;
from
(
select rowid = row_number() over (order by kills desc) ,Username
from csrank
) a
where Username = 'Test'
from csrank a
select tid as '排行位置' from # where Username='test'
drop #
--参考
declare @t table(a varchar(18),b decimal(20,8))
insert @t select
'ZZ:BW:6000', '2.00000000' union all select
'ZZ:BW:6000', '5.00000000' union all select
'ZZ:BW:6000', '45.00000000' union all select
'ZZ:BW:6000', '78.00000000' union all select
'ZZ:BW:6000', '87.00000000' union all select
'ZZ:BW:6001', '2.00000000'
select * ,(select count(*)+1 from @t t1 where t1.a=t2.a and t1.b <t2.b )as 排名 from @t t2 order by a,b
/*
a b 排名
------------------ ---------------------- -----------
ZZ:BW:6000 2.00000000 1
ZZ:BW:6000 5.00000000 2
ZZ:BW:6000 45.00000000 3
ZZ:BW:6000 78.00000000 4
ZZ:BW:6000 87.00000000 5
ZZ:BW:6001 2.00000000 1*/