我已对一份报告进行了调整,以创建此查询,从而查看哪些用户在 X 个月前发布了最多帖子,以及在该时间段内共有多少用户发布了帖子。
-- [params]
-- int :months_ago = 1
WITH query_period AS (
SELECT
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' as period_start,
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' + INTERVAL '1 month' - INTERVAL '1 second' as period_end
)
SELECT
ua.user_id,
count(1) AS post_count
FROM user_actions ua
INNER JOIN query_period qp
ON ua.created_at >= qp.period_start
AND ua.created_at <= qp.period_end
INNER JOIN users u
ON u.id = ua.user_id
AND u.admin = 'f'
AND u.moderator = 'f'
GROUP BY ua.user_id
ORDER BY post_count DESC
但我一直在努力获取后者——在该时间段内发布帖子的用户总数。我想我只需要统计报告中包含的用户数量。 如果任何人能提供一些指导,我将不胜感激。
编辑 - 算了,我可以看到我可以直接从结果总数中获取这个数据——
