【发布时间】:2018-11-25 06:11:57
【问题描述】:
我有一个包含 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 的降序排列
game_detail 的顺序
【问题讨论】:
-
是
game_id的升序还是game_detail的降序? -
game_detail 的顺序