이 쿼리는 지난 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
더 효율적인 방법이 있을 수도 있지만, 일단 잘 동작합니다
. 특정 기간을 지정하려면 > CURRENT_TIMESTAMP - INTERVAL '365 days' (두 곳 모두)를 다음과 같이 변경할 수 있습니다: BETWEEN '20200101'::date AND '20210101'::date .
질문에 훌륭한 정보와 참고 자료를 제공해 주셨네요! 저는 적절한 부분만 골라 조합하는 것만 하면 되었습니다.