我正在尝试弄清楚如何选择最多 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