源码

根据MySQL中的多列确定排名


我有一个有3个字段的表,我想根据user_id和game_id对列进行排名.

这是SQL小提琴:
http://sqlfiddle.com/#!9/883e9d/1

我已经拥有的桌子:

 user_id | game_id |   game_detial_sum  |
 --------|---------|--------------------|
 6       | 10      |  1000              |   
 6       | 11      |  260               |
 7       | 10      |  1200              |
 7       | 11      |  500               |
 7       | 12      |  360               |
 7       | 13      |  50                | 

预期产量:

user_id  | game_id |   game_detial_sum  |  user_game_rank  |
 --------|---------|--------------------|------------------|
 6       | 10      |  1000              |   1              |
 6       | 11      |  260               |   2              |
 7       | 10      |  1200              |   1              |
 7       | 11      |  500               |   2              |
 7       | 12      |  360               |   3              |
 7       | 13      |  50                |   4              |

到目前为止我的努力:

SET @s := 0; 
SELECT user_id,game_id,game_detail, 
       CASE WHEN user_id = user_id THEN (@s:=@s+1) 
            ELSE @s = 0 
       END As user_game_rank 
FROM game_logs

编辑:(从OP Comments开始):订购基于game_detail的降序

order of game_detail

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/genjumysqlzhongdeduoliequedingpaiming.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9月 25, 2019 at 07:52 下午

热评文章