有什么方法可以使用 PostgreSQL 查询获取拥有超过 2 本书的所有者 ID?
Is there any way to get owner ids who have more than 2 books using PostgreSQL query?
在libraries
table中,有owner_id
和book_id
。
每个owner
只能有一个book
。
例如,
id|owner_id|book_id
3 | 2 | 1
5 | 2 | 1
但现在有些业主拥有超过2本书。
id|owner_id|book_id
9 | 5 | 1
11| 5 | 2
有什么方法可以使用 PostgreSQL 查询[=28] 来获取拥有超过 2 本书 的 所有者 ID =]?
您可以将聚合和过滤器与 having
子句一起使用:
select owner_id from librarires group by owner_id having count(*) > 1
这假设 (book_id, owner_id)
元组在 table 中是唯一的。如果可能会发生重复,并且您只想计算每个所有者的不同书籍,则:
select owner_id from librarires group by owner_id having count(distinct book_id) > 1
在libraries
table中,有owner_id
和book_id
。
每个owner
只能有一个book
。
例如,
id|owner_id|book_id
3 | 2 | 1
5 | 2 | 1
但现在有些业主拥有超过2本书。
id|owner_id|book_id
9 | 5 | 1
11| 5 | 2
有什么方法可以使用 PostgreSQL 查询[=28] 来获取拥有超过 2 本书 的 所有者 ID =]?
您可以将聚合和过滤器与 having
子句一起使用:
select owner_id from librarires group by owner_id having count(*) > 1
这假设 (book_id, owner_id)
元组在 table 中是唯一的。如果可能会发生重复,并且您只想计算每个所有者的不同书籍,则:
select owner_id from librarires group by owner_id having count(distinct book_id) > 1