sql排名语句

发布时间:2016-03-21 浏览次数:2870 文章来源:个人博客

数据库进行排名:

有两种情况


第一:如下


id           score            ranking

4             99                    1

3             97                    2

6             97                    2

5             95                    4

1             90                    5

2             87                    6


对于这种排名,不要连续的,2-》4 这种,可以用以下sql代码


SELECT g1.id ,g1.score, count(g2.id )+1 as p FROM `lsw_wechat_game_score` g1 left join `lsw_wechat_game_score` g2 on g1.score < g2.score group by g1.id ORDER BY P;


思路:对于表,进行关联,主要是关联比其分数高的,然后group by 合并相同的行,并且统计合并了多少行(count(g2.id)) 得到的就是其排名!





第二 :


id           score            ranking

4             99                    1

3             97                    2

6             97                    2

5             95                    3

1             90                    4

2             87                    5



对于这种排名,要连续的,2-》3 这种,可以用以下sql代码


SELECT g1.id ,g1.score, count(DISTINCT(g2.score) )+1 as p FROM `lsw_wechat_game_score` g1 left join `lsw_wechat_game_score` g2 on g1.score < g2.score group by g1.id ORDER BY P;


思路:对于表,进行关联,主要是关联比其分数高的,然后group by 合并相同的行,并且统计合并了多少行,相同的分值只算一个(count(DISTINCT(g2.score))) 得到的就是其排名!


key-word
sql排名 sql语句 排名 sql排名语句