2017-10-16 39 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中有兩個分數? –

回答