SQL如何限制特定列的数量?

Hen*_*nry 1 sql postgresql

我有一张这样的桌子(书):

id | author | book
--------------
1, Joy, book1
2, Joy, book2
3, Bob, book3
4, Bob, book4
5, Bob, book5
6, Dan, book6
...
Run Code Online (Sandbox Code Playgroud)

我需要一个查询来获得 10 个作者的书。下面的选择不是我想要的:

SELECT author, book
FROM books
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

如何将结果限制在 10 个作者?

esh*_*ana 5

这是一种方法:

select * from (
   select * , dense_rank() over (order by author) rn
   from books
) t
where t.rn < 11
Run Code Online (Sandbox Code Playgroud)