0

我有一个简单模式的表:user_idscore我想提取得分最高的 n 条记录,这样每条记录user_id只表示一次。

这个问题类似于为每组分组结果获取前 n 条记录,除了我不需要每组 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
4

1 回答 1

2
SELECT user_id, MAX(score) FROM table GROUP BY user_id ORDER BY MAX(score) DESC LIMIT 3;
于 2013-06-28T03:56:37.350 回答