적절한 타임스탬프가 포함된 User_stats

안녕하세요,

저는 Discourse SQL 데이터베이스를 가지고 있습니다. 특정 타임스탬프에 대한 사용자 통계를 찾아야 합니다.
예를 들어, 사용자가 몇 개의 게시물을 작성했는지 확인하고 싶습니다.
user_stats에서 해당 데이터를 추출하면 가입 시점부터 현재까지의 수치가 나오지만, 특정 기간에 대한 정보를 확인해야 합니다.
어떤 방법이 있을까요?

새로운 데이터베이스 쿼리를 사용하여 통계를 직접 생성해야 합니다. 예를 들어, 지난 30일간의 게시물 수를 가져오려면

SELECT count(*) from posts 
WHERE user_id=1
AND created_at > CURRENT_TIMESTAMP - INTERVAL '30 days'

이 주제에는 시작점으로 사용할 수 있는 다양한 예제 쿼리가 있습니다.

고마워요 @david :slight_smile:

하지만 날짜 대신 정확한 시간을 지정하고 싶다면, 예를 들어 2020-2-2 00:00:00과 2020-3-1 00:00:00 사이의 값을 찾고 싶다면 어떻게 해야 할까요?

다음 쿼리를 실행하면

SELECT count(*) from posts WHERE user_id=16 AND created_at > CURRENT_TIMESTAMP - INTERVAL '30 days'

숫자가 반환되는데, 내 통계를 살펴보면 해당 숫자보다 적게 나옵니다.
이것을 보시면 알겠지만, 데이터베이스에서는 430이 나오는데 실제로는 308이네요?
OnPaste.20200302-164643

UI에 표시된 개수는 공개되고 삭제되지 않은 게시물에 한해 적용됩니다. 데이터베이스의 개수는 삭제된 게시물, 개인 메시지, 비공개 카테고리를 포함한 모든 게시물을 집계한 것입니다.

하지만 특정 기간 내의 해당 UI 통계를 얻고 싶다면 어떻게 해야 할까요?

유사한 필터를 적용해야 합니다. 다음과 같은 형태입니다:

SELECT count(*) FROM posts p
JOIN topics t ON t.id = p.topic_id
WHERE p.user_id=23968
AND p.deleted_at IS NULL
AND NOT COALESCE(p.hidden, 't')
AND p.post_type = 1
AND t.deleted_at IS NULL
AND COALESCE(t.visible, 't')
AND t.archetype <> 'private_message'
AND p.user_id > 0
AND p.post_number > 1