Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:获取字段的前3个匹配项_Sql_Postgresql_Greatest N Per Group - Fatal编程技术网

SQL:获取字段的前3个匹配项

SQL:获取字段的前3个匹配项,sql,postgresql,greatest-n-per-group,Sql,Postgresql,Greatest N Per Group,我有一个PostgreSQL表,有两个字段,如下所示。字段A是主键 A | B ------ 1 | 1 2 | 1 3 | 1 4 | 1 5 | 2 6 | 2 7 | 2 8 | 2 9 | 2 10 | 3 11 | 3 我正在寻找一个只获取B的3次首次出现的请求,如下所示: A | B 1 | 1 2 | 1 3 | 1 5 | 2 6 | 2 7 | 2 10 | 3 11 | 3 有人有解决方案吗?您需要行号: select t.* fro

我有一个PostgreSQL表,有两个字段,如下所示。字段A是主键

A  | B
------
1  | 1
2  | 1
3  | 1
4  | 1
5  | 2
6  | 2
7  | 2
8  | 2
9  | 2
10 | 3 
11 | 3
我正在寻找一个只获取B的3次首次出现的请求,如下所示:

A  | B
1  | 1 
2  | 1
3  | 1
5  | 2
6  | 2
7  | 2
10 | 3
11 | 3
有人有解决方案吗?

您需要行号:

select t.*
from (select t.*, row_number() over (partition by b order by a) as seq
      from table t
     ) t
where seq <= 3;