我正在试图弄清楚如何选择我的表中每个键可以说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
感谢您提供的任何帮助!
答案 0 :(得分:3)
使用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 :(得分:0)
SELECT * FROM table1 a 哪里 ( SELECT COUNT(*) FROM table1 b 在哪里a.uid = b.uid AND a.map&lt; = b.map )&lt; = 2