2017-10-16 113 views
2
我使用Sequelize

,我有这样一个表:获得用户的排名在多个排行榜

+--------+-------------+--------+ 
| userId | leaderboard | points | 
+--------+-------------+--------+ 
|  1 | lead1  |  10 | 
|  1 | lead2  |  20 | 
|  1 | lead1  |  5 | 
|  2 | lead2  |  10 | 
|  2 | lead1  |  10 | 
|  2 | lead1  |  15 | 
|  3 | lead2  |  15 | 
+--------+-------------+--------+ 

我一直在使用秩()创建谁的用户有更多的点,或谁的用户排名对于给定的排行榜(lead1或lead2)有更多的积分,但是现在我需要找到不同排行榜中用户的当前排名(在示例表中有两个,但可以是n),所以我需要类似如下内容:

对于用户1:

  • 用户1 - LEAD1 - 15分 - 等级2

  • 用户1 - lead2 - 20分 - 等级1

用于用户2:

  • 用户2 - LEAD1 - 25分 - 等级1

  • 用户2 - lead2 - 10分 - 秩3

用户3:

  • 用户3 - lead2 - 15点 - 等级2

我一直在使用SQL了一段时间,但是这正变得有点复杂。

+0

看看[窗口函数](https://www.postgresql.org/docs/9.4/static/tutorial-window.html) – bouletta

+0

用户1在lead1中有两个分数? –

回答