모든 활성 사용자(Lurkers + Posters)를 위한 데이터 탐색기 쿼리

이 쿼리는 지난 1년 동안 로그인한 상태에서 글을 읽었거나 게시물을 작성한 모든 사용자를 반환합니다. 데이터 탐색기(Data Explorer)는 해당 사용자의 수를 출력하기도 합니다.

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 .

질문에 훌륭한 정보와 참고 자료를 제공해 주셨네요! 저는 적절한 부분만 골라 조합하는 것만 하면 되었습니다.