数据探索器 — 月活跃会员占比

大家好,欢迎使用和探索 Data Explorer 插件!

感谢 @michebs 之前解答了所有问题。我还有一个关于 Data Explorer 查询的问题。

是否有人创建过按月统计活跃用户百分比的查询?

“活跃”指的是用户在该月内对某些帖子进行了点赞或回复,次数不限,但至少需要有一次。百分比是基于社区所有成员总数计算的。例如,如果某月有两人参与互动:一人点赞了某个帖子,另一人进行了回复,那么活跃人数为 2,再将其除以社区成员总数即可得出百分比。

希望这能帮到您。
需要说明的是,用户总数会随时间变化,因此查询中所考虑的是截至某项操作执行所在月份和年份的累计用户数。

WITH tt_users_by_month AS (
    SELECT 
        date_part('year', created_at) AS year, 
        date_part('month', created_at) AS month,
        COUNT(*) AS "new_users_month"
    FROM users
    WHERE id > 0
    GROUP BY date_part('year', created_at), date_part('month', created_at)
    ORDER BY date_part('year', created_at) ASC, date_part('month', created_at)
),

total_users AS (
    SELECT
        year, 
        month, 
        SUM(new_users_month) over (ORDER BY year, month rows between unbounded preceding AND current row) AS total
    FROM tt_users_by_month ORDER BY year, month
)

SELECT 
    date_part('year', ua.created_at) AS year, 
    date_part('month', ua.created_at) AS month,
    TRUNC(COUNT(DISTINCT user_id)::decimal/tu.total*100,2) AS "%"
FROM 
    user_actions ua
INNER JOIN total_users tu ON (date_part('year', ua.created_at) = tu.year AND date_part('month', ua.created_at) = tu.month)
WHERE action_type IN (1,5)
	GROUP BY date_part('year', created_at), date_part('month', created_at), total

没错,完全合理!谢谢!