SQL选择将结果限制为特定列

时间:2017-08-08 18:16:52

标签: sql

我正在试图弄清楚如何选择我的表中每个键可以说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

感谢您提供的任何帮助!

2 个答案:

答案 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