繁体   English   中英

从表中选择最多n条记录,每组最多一条记录

[英]select maximum n records from table with at most one record per group

我有一个简单模式的表: 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
SELECT user_id, MAX(score) FROM table GROUP BY user_id ORDER BY MAX(score) DESC LIMIT 3;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM