我需要为每个组取前N行,按自定义列排序.
鉴于下表:
db=# SELECT * FROM xxx;
id | section_id | name
----+------------+------
1 | 1 | A
2 | 1 | B
3 | 1 | C
4 | 1 | D
5 | 2 | E
6 | 2 | F
7 | 3 | G
8 | 2 | H
(8 rows)
Run Code Online (Sandbox Code Playgroud)
我需要每个section_id的前两行(按名称排序),即类似于的结果:
id | section_id | name
----+------------+------
1 | 1 | A
2 | 1 | B
5 | 2 | …Run Code Online (Sandbox Code Playgroud) 我有两个这样的SQLite表:
AuthorId | AuthorName
----------------------
1 | Alice
2 | Bob
3 | Carol
... | ....
BookId | AuthorId | Title
----------------------------------
1 | 1 | aaa1
2 | 1 | aaa2
3 | 1 | aaa3
4 | 2 | ddd1
5 | 2 | ddd2
... | ... | ...
19 | 3 | fff1
20 | 3 | fff2
21 | 3 | fff3
22 | 3 | fff4
Run Code Online (Sandbox Code Playgroud)
我想创建一个SELECT查询,它将返回每个AuthorId的前N行(例如两行),按Title排序("选择每个作者的前两本书").
样本输出:
BookId | AuthorId | AuthorName …Run Code Online (Sandbox Code Playgroud)