SQL 选择此选项可将特定列中每个 id 值的结果限制为 X

  • 本文关键字:id 结果 选项 选择 SQL sql
  • 更新时间 :
  • 英文 :


我正在尝试弄清楚如何选择最多 2 个结果,比如说我的表中每个键有 2 个结果。

我的表如下所示

uid map
1   11
1   12
1   16
1   21
1   26
2   1
2   11
2   14
2   12
2   22
3   12
3   15
3   16

我要做的是为每个 uid 选择最多 2 行数据

示例结果:

uid map
1   11
1   12
2   1
2   11
3   12
3   15

感谢您提供的任何帮助!

使用 ANSI 标准 SQL,最简单的方法是row_number()

select uid, map
from (select t.*, row_number() over (partition by uid order by map) as seqnum
from t
) t
where seqnum <= 2;

选择 * 从表1 a 哪里 ( 选择计数(*( 从表1 b 其中 a.uid = b.uid 和 a.地图 <= b.地图 ( <= 2

最新更新