大家好,欢迎使用和探索 Data Explorer 插件!
感谢 @michebs 之前解答了所有问题。我还有一个关于 Data Explorer 查询的问题。
是否有人创建过按月统计活跃用户百分比的查询?
“活跃”指的是用户在该月内对某些帖子进行了点赞或回复,次数不限,但至少需要有一次。百分比是基于社区所有成员总数计算的。例如,如果某月有两人参与互动:一人点赞了某个帖子,另一人进行了回复,那么活跃人数为 2,再将其除以社区成员总数即可得出百分比。
大家好,欢迎使用和探索 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
没错,完全合理!谢谢!