我有一个名为user_activity的表。
| 用户标识|book_id|事件类型标识|
| --|--|--|
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 1 | 1 |
| 1 | 2 | 1 |
| 1 | 2 | 1 |
| 1 | 2 | 1 |
| 1 | 3 | 1 |
event_type_id表示“用户已查看图书”。
我想写一个Postgresql查询来获取用户查看两次以上的图书ID,如下所示-
| 用户id|查看图书ID|
| --|--|
| 1 |一、二|
1条答案
按热度按时间smtd7mpg1#
您必须执行两次
GROUP BY
--user_id, book_id
提取符合条件的用户手册对(内部子查询),然后user_id
对结果执行。字符串
DB-fiddle
viewed_book_ids
的用途是什么呢?也许它作为数组(使用array_agg
而不是string_agg
)或JSONB数组(使用jsonb_agg
)比逗号分隔的列表文本更有用。