mysql select 增加一个排名

半醉人间 发布于 2014/07/31 21:53
阅读 242
收藏 0

原数据表

id  name   score

1   张三   100
2   李白   90
3   张罗   90
4   陈水扁 100
5   李世民 80




现在要select出来
id  name   score  排名
1   张三   100    1
2   李白   90     3
3   张罗   90     3
4   陈水扁 100    1

5   李世民 80     5


需要select出来的内容,,那个排名怎么加上去

加载中
0
大喵哥
大喵哥
SELECT   *   ,  ((SELECT   COUNT(Score)   FROM   table a   WHERE   Score   >   a.Score)   +   1  ) AS pm FROM   table a ORDER BY  a.pm  ;
未测试,你试试看看 行不行
0
都哑
都哑
select name,score,(select pm from (select score,(@pm:=@pm+1 ) pm from (select score from te group by score order by score desc) temp,
(select (@pm:=0) ) b) temp where temp.score=te.score) 排名 from te order by score desc;

惭愧只能写出这么笨的。



0
b
blunt_tt
select td.*,(select count(1)+1 from testDemo where score>td.score) from testDemo td order by score desc,id
0
熊仔
set @rn=0;
select t1.*,a.rn1 from table t1
left join
(
select t1.score,@rn:=@rn+1 rn1
from(
select distinct t.score from table t
order by t.score desc
    )t1
)a
on t1.score=a.score



返回顶部
顶部