数据探索器查询所有活跃用户(潜水员+发帖者)

这将为您列出所有在过去一年内登录过并阅读过内容,或发布过帖子的用户。数据探索器还会显示具体人数。

SELECT p.user_id
FROM posts p
LEFT JOIN topics t ON t.id = p.topic_id
WHERE p.created_at::date > CURRENT_TIMESTAMP - INTERVAL '365 days'
 AND t.deleted_at IS NULL
 AND t.visible = TRUE
 AND t.closed = FALSE
 AND t.archived = FALSE
 AND t.archetype = 'regular'
 AND p.deleted_at IS NULL
UNION
SELECT u.user_id
FROM user_visits u
WHERE u.posts_read > 0
 AND u.visited_at > CURRENT_TIMESTAMP - INTERVAL '365 days'
ORDER BY user_id

可能还有更高效的实现方式,但这个方法确实有效 :slight_smile:。如果您需要针对特定时间段,可以将两处 > CURRENT_TIMESTAMP - INTERVAL '365 days' 修改为类似这样的格式:BETWEEN '20200101'::date AND '20210101'::date

您在问题中提供了非常有用的信息和参考!我只需要挑选合适的部分并将它们组合起来即可。