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