SQL:获取字段的前3个匹配项
我有一个PostgreSQL表,有两个字段,如下所示。字段A是主键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
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;