0
我有一個簡單模式的表格:user_id
,score
我想提取最高分數的n條記錄,這樣每個user_id
只表示一次。從表格中選擇最多n條記錄,每組最多一條記錄
這個問題類似於Get top n records for each group of grouped results,不同之處在於,不需要每個組需要n個代表,我需要n個表的代表,每個組最多有一個記錄。
因此,如果我在找N = 3,運行查詢:
user_id | score
1 | 10
2 | 9
1 | 11
2 | 8
3 | 8
4 | 12
應該產生:
user_id | score
4 | 12
1 | 11
2 | 9
哇哦,我是gymnasting通過自我加入和子查詢和所有的東西,很高興它有一個簡單的解決方案! – Mala
@Mala:那麼你還在想'RBAR - 通過Agonizing Row排。相反,學會「逐列」思考;在這種情況下,前3名用戶的最高分數很快會導致此解決方案。 –
如果我在表中添加了一個日期列,我怎麼能擴展它以返回正確的日期?選擇日期的微小擴展也會返回第一個日期,而不是與最高分數相關的日期 – Mala